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")); 
     } 
    } 
} 

Код возвращает 400 код ошибки во время выполнения. Кажется, что формат шаблона URL неправильный. Пожалуйста, предложите. Также как можно указать формат для JSON.Я пытаюсь использовать поисковый запрос microsoft api для веб-результатов

ответ

0

Неверно указана ваша ошибка. Вы хотите следующие вместо:

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

Вы также хотите, чтобы изменить то, как строятся URL, так как вы жестко запрос к «Биллу Гейтсу».

final String bingUrlPattern ="https://api.cognitive.microsoft.com/bing/v5.0/search?q=%s"; 

Возможно, вы найдете API console.

Смежные вопросы