2016-11-22 2 views
1
final String accountKey = "***********************"; 
    final String bingUrlPattern ="https://api.cognitive.microsoft.com/bing/v5.0/search?q=bill gates"; 


    String query = URLEncoder.encode("'what  is omonoia'", Charset.defaultCharset().name()); 
    String bingUrl = String.format(bingUrlPattern, query); 

    String accountKeyEnc = Base64.getEncoder().encodeToString((accountKey + ":" + accountKey).getBytes()); 

    URL url = new URL(bingUrl); 
    URLConnection connection = url.openConnection(); 
    connection.setRequestProperty("Authorization", "Basic " + accountKeyEnc); 

    try (BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()))) { 
     String inputLine; 
     StringBuilder response = new StringBuilder(); 
     while ((inputLine = in.readLine()) != null) { 
      response.append(inputLine); 
     } 
     JSONObject json = new JSONObject(response.toString()); 
     JSONObject d = json.getJSONObject("d"); 
     JSONArray results = d.getJSONArray("results"); 
     int resultsLength = results.length(); 
     for (int i = 0; i < resultsLength; i++) { 
      final JSONObject aResult = results.getJSONObject(i); 
      System.out.println(aResult.get("Url")); 
     } 
    } 
} 

Le code renvoie le code d'erreur 400 pendant l'exécution. Il semble que le format du modèle d'URL est incorrect. Veuillez suggérer. Aussi comment peut spécifier le format à être en JSON.J'essaye d'employer l'api cognitif de recherche de Microsoft pour des résultats de Web

Répondre

0

Vous spécifiez incorrectement votre autorisation. Vous voulez les éléments suivants à la place:

connection.setRequestProperty("Ocp-Apim-Subscription-Key", accountKey); 

Vous aurez également besoin de changer la façon dont l'URL est construite, puisque vous avez codé en dur la requête aux « portes de factures ». Vous pouvez trouver le API console utile.