Snabbstart: Anropa slutpunkten för anpassad Bing-sökning med Java
Varning
Den 30 oktober 2020 flyttades Bing-sökning-API:erna från Azure AI-tjänster till Bing-sökning Services. Den här dokumentationen tillhandahålls endast som referens. Uppdaterad dokumentation finns i dokumentationen för API:et för Bing-sökning. Anvisningar om hur du skapar nya Azure-resurser för Bing-sökning finns i Skapa en Bing-sökning resurs via Azure Marketplace.
Använd den här snabbstarten om du vill lära dig hur du begär sökresultat från din instans av anpassad Bing-sökning. Även om det här programmet är skrivet i Java är API:et för anpassad sökning i Bing en RESTful-webbtjänst som är kompatibel med de flesta programmeringsspråk. Källkoden för det här exemplet finns på GitHub.
Förutsättningar
En instans av anpassad Bing-sökning. Mer information finns i Snabbstart: Skapa din första instans av anpassad Bing-sökning.
Det senaste Java Development Kit.
Skapa en Azure-resurs
Börja använda API:et för anpassad Bing-sökning genom att skapa någon av följande Azure-resurser.
Resurs för anpassad Bing-sökning
- Tillgänglig via Azure Portal tills du tar bort resursen.
- Använd den kostnadsfria prisnivån för att prova tjänsten och uppgradera senare till en betald nivå för produktion.
Resurs för flera tjänster
- Tillgänglig via Azure Portal tills du tar bort resursen.
- Använd samma nyckel och slutpunkt för dina program i flera Azure AI-tjänster.
Skapa och initiera appen
Skapa ett nytt Java-projekt i valfri IDE eller redigeringsprogram och importera följande bibliotek:
import java.io.InputStream; import java.net.URL; import java.net.URLEncoder; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Scanner; import javax.net.ssl.HttpsURLConnection; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonObject; import com.google.gson.JsonParser;
Skapa en klass med namnet
CustomSrchJava
och skapa sedan variabler för prenumerationsnyckeln, slutpunkten för anpassad sökning och sökinstansens anpassade konfigurations-ID. Du kan använda den globala slutpunkten i följande kod eller använda den anpassade underdomänslutpunkten som visas i Azure Portal för resursen.public class CustomSrchJava { static String host = "https://api.cognitive.microsoft.com"; static String path = "/bingcustomsearch/v7.0/search"; static String subscriptionKey = "YOUR-SUBSCRIPTION-KEY"; static String customConfigId = "YOUR-CUSTOM-CONFIG-ID"; static String searchTerm = "Microsoft"; ...
Skapa en annan klass med namnet
SearchResults
som ska innehålla svaret från instansen för Anpassad Bing-sökning.class SearchResults { HashMap<String, String> relevantHeaders; String jsonResponse; SearchResults(HashMap<String, String> headers, String json) { relevantHeaders = headers; jsonResponse = json; } }
Skapa en funktion med namnet
prettify()
för att formatera JSON-svaret från API för anpassad Bing-sökning.// pretty-printer for JSON; uses GSON parser to parse and re-serialize public static String prettify(String json_text) { JsonParser parser = new JsonParser(); JsonObject json = parser.parse(json_text).getAsJsonObject(); Gson gson = new GsonBuilder().setPrettyPrinting().create(); return gson.toJson(json); }
Skicka och ta emot en sökbegäran
Skapa en funktion med namnet
SearchWeb()
som skickar en begäran och returnerar ettSearchResults
-objekt. Skapa begärande-URL:en genom att kombinera ditt anpassade konfigurations-ID, fråga och slutpunktsinformation. Lägg till din prenumerationsnyckel iOcp-Apim-Subscription-Key
-huvudet.public class CustomSrchJava { ... public static SearchResults SearchWeb (String searchQuery) throws Exception { // construct the URL for your search request (endpoint + query string) URL url = new URL(host + path + "?q=" + URLEncoder.encode(searchTerm, "UTF-8") + "&CustomConfig=" + customConfigId); HttpsURLConnection connection = (HttpsURLConnection)url.openConnection(); connection.setRequestProperty("Ocp-Apim-Subscription-Key", subscriptionKey); ...
Skapa en ström och lagra JSON-svaret i ett
SearchResults
-objekt.public class CustomSrchJava { ... public static SearchResults SearchWeb (String searchQuery) throws Exception { ... // receive the JSON body InputStream stream = connection.getInputStream(); String response = new Scanner(stream).useDelimiter("\\A").next(); // construct result object for return SearchResults results = new SearchResults(new HashMap<String, String>(), response); stream.close(); return results; }
Skriv ut JSON-svaret.
System.out.println("\nJSON Response:\n"); System.out.println(prettify(result.jsonResponse));
Kör programmet.