Quickstart: Uw Bing Aangepaste zoekopdrachten-eindpunt aanroepen met Java
Waarschuwing
Op 30 oktober 2020 zijn de Zoeken in Bing API's verplaatst van Azure AI-services naar Zoeken in Bing Services. Deze documentatie is alleen bedoeld ter referentie. Zie de bing-documentatie voor zoeken-API voor bijgewerkte documentatie. Zie Een Zoeken in Bing-resource maken via de Azure Marketplace voor instructies over het maken van nieuwe Azure-resources voor Bing Search.
Lees in deze quickstart hoe u zoekresultaten opvraagt van de Bing Custom Search-instantie. Hoewel deze app is geschreven in Java, is de Bing Custom Search API een RESTful-webservice die compatibel is met vrijwel elke programmeertaal. De broncode voor dit voorbeeld is beschikbaar op GitHub.
Vereisten
Een Bing Custom Search-exemplaar. Zie voor meer informatie Snelstart: Uw eerste Bing Custom Search-instantie maken.
De meest recente Java Development Kit.
De Gson-bibliotheek.
Een Azure-resource maken
Begin met het gebruik van de Bing Custom Search-API door een van de volgende Azure-resources te maken.
Resource voor Bing Custom Search
- Beschikbaar via de Azure-portal totdat u de resource verwijdert.
- Gebruik de gratis prijscategorie om de service uit te proberen, en voer later een upgrade uit naar een betaalde categorie voor productie.
Resource voor meerdere services
- Beschikbaar via de Azure-portal totdat u de resource verwijdert.
- Gebruik dezelfde sleutel en hetzelfde eindpunt voor uw toepassingen, in meerdere Azure AI-services.
De toepassing maken en initialiseren
Maak een nieuw Java-project in uw favoriete IDE of editor en importeer de volgende bibliotheken:
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;
Maak een klasse met de naam
CustomSrchJava
en maak vervolgens variabelen voor uw abonnementssleutel, Bing Custom Search-eindpunt en de aangepaste configuratie-id voor de zoekinstantie. U kunt het globale eindpunt in de volgende code gebruiken of het eindpunt voor een aangepast subdomein gebruiken dat wordt weergegeven in Azure Portal voor uw resource.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"; ...
Maak nog een klasse met de naam
SearchResults
voor het antwoord van het Bing Aangepaste zoekopdrachten-exemplaar.class SearchResults { HashMap<String, String> relevantHeaders; String jsonResponse; SearchResults(HashMap<String, String> headers, String json) { relevantHeaders = headers; jsonResponse = json; } }
Maak een functie met de naam
prettify()
om het JSON-antwoord in te delen vanuit de Bing Aangepaste zoekopdrachten-API.// 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); }
Een zoekaanvraag verzenden en ontvangen
Maak een functie met de naam
SearchWeb()
waarmee een aanvraag wordt verzonden en eenSearchResults
-object geretourneerd. Maak de aanvraag-URL door uw aangepaste configuratie-id, query en eindpuntgegevens te combineren. Voeg uw abonnementssleutel toe aan deOcp-Apim-Subscription-Key
-header.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); ...
Maak een stroom en sla het JSON-antwoord op in een
SearchResults
-object.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; }
Geef het JSON-antwoord weer.
System.out.println("\nJSON Response:\n"); System.out.println(prettify(result.jsonResponse));
Voer het programma uit.