Rövid útmutató: A Bing Custom Search-végpont meghívása Java használatával
Figyelmeztetés
2020. október 30-án a Bing Search API-k átkerültek az Azure AI-szolgáltatásokból a Bing Search-szolgáltatásokba. Ez a dokumentáció csak referenciaként érhető el. A frissített dokumentációt a Bing search API dokumentációjában találja. Az új Azure-erőforrások Bing-kereséshez való létrehozásával kapcsolatos utasításokért lásd: Bing Search-erőforrás létrehozása a Azure Marketplace keresztül.
Ebből a rövid útmutatóból megtudhatja, hogyan kérhet keresési eredményeket a Bing Custom Search-példánytól. Bár ez az alkalmazás Java nyelven van megírva, a Bing Custom Search API egy RESTful webszolgáltatás, amely kompatibilis a legtöbb programozási nyelvvel. A minta forráskódja elérhető a GitHubon.
Előfeltételek
Egy Bing Custom Search-példány. További információ : Rövid útmutató: Az első Bing Custom Search-példány létrehozása.
A legújabb Java Development Kit.
Azure-erőforrás létrehozása
Kezdje el használni a Bing Custom Search API-t az alábbi Azure-erőforrások egyikének létrehozásával.
Bing Custom Search-erőforrás
- A Azure Portal keresztül érhető el, amíg el nem törli az erőforrást.
- Az ingyenes tarifacsomag használatával próbálja ki a szolgáltatást, és frissítsen később egy fizetős tarifacsomagra éles környezetben.
Többszolgáltatásos erőforrás
- A Azure Portal keresztül érhető el, amíg el nem törli az erőforrást.
- Használja ugyanazt a kulcsot és végpontot az alkalmazásokhoz több Azure AI-szolgáltatásban.
Az alkalmazás létrehozása és inicializálása
Hozzon létre egy új Java-projektet a kedvenc IDE-jében vagy szerkesztőjében, és importálja a következő kódtárakat:
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;
Hozzon létre egy nevű osztályt
CustomSrchJava
, majd hozzon létre változókat az előfizetési kulcshoz, az egyéni keresési végponthoz és a keresési példány egyéni konfigurációs azonosítójához. Használhatja a globális végpontot a következő kódban, vagy használhatja az erőforráshoz tartozó Azure Portal megjelenített egyéni altartományvégpontot.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"; ...
Hozzon létre egy másik nevű
SearchResults
osztályt, amely tartalmazza a Bing Custom Search-példány válaszát.class SearchResults { HashMap<String, String> relevantHeaders; String jsonResponse; SearchResults(HashMap<String, String> headers, String json) { relevantHeaders = headers; jsonResponse = json; } }
Hozzon létre egy nevű
prettify()
függvényt a Bing Custom Search API JSON-válaszának formázásához.// 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); }
Keresési kérelem küldése és fogadása
Hozzon létre egy nevű
SearchWeb()
függvényt, amely kérést küld, és visszaad egySearchResults
objektumot. Hozza létre a kérelem URL-címét az egyéni konfigurációs azonosító, lekérdezés és végpont adatainak kombinálásával. Adja hozzá az előfizetési kulcsot aOcp-Apim-Subscription-Key
fejléchez.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); ...
Hozzon létre egy streamet, és tárolja a JSON-választ egy
SearchResults
objektumban.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; }
Nyomtassa ki a JSON-választ.
System.out.println("\nJSON Response:\n"); System.out.println(prettify(result.jsonResponse));
Futtassa a programot.