Delen via


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 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

  1. 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;
    
  2. 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";  
    ...
    
  3. 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;
        }
    }
    
  4. 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

  1. Maak een functie met de naam SearchWeb() waarmee een aanvraag wordt verzonden en een SearchResults-object geretourneerd. Maak de aanvraag-URL door uw aangepaste configuratie-id, query en eindpuntgegevens te combineren. Voeg uw abonnementssleutel toe aan de Ocp-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);
    ...
    
  2. 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;
        }
    
  3. Geef het JSON-antwoord weer.

    System.out.println("\nJSON Response:\n");
    System.out.println(prettify(result.jsonResponse));
    
  4. Voer het programma uit.

Volgende stappen