Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Warnung
Am 30. Oktober 2020 wurden die Bing Search-APIs von Azure AI-Diensten zu Bing Search Services verschoben. Diese Dokumentation wird nur zur Referenz bereitgestellt. Eine aktualisierte Dokumentation finden Sie in der Dokumentation zu den Bing-Suche-APIs. Anweisungen zum Erstellen neuer Azure-Ressourcen für die Bing-Suche finden Sie unter Erstellen einer Ressource für die Bing-Suche über Azure Marketplace.
Verwenden Sie diese Schnellstartanleitung, um Ihren ersten Aufruf an die Bing Entity Search-API durchzuführen und die JSON-Antwort anzuzeigen. Diese einfache C#-Anwendung sendet eine Nachrichtensuchabfrage an die API und zeigt die Antwort an. Der Quellcode für diese Anwendung ist auf GitHub-verfügbar.
Obwohl diese Anwendung in C# geschrieben ist, ist die API ein RESTful-Webdienst, der mit den meisten Programmiersprachen kompatibel ist.
Voraussetzungen
- Jede Edition von Visual Studio 2017 oder höher.
- Oder wenn Sie Linux oder MacOS verwenden, können Sie diese Schnellstartanleitung mit Visual Studio Code und .NET Core befolgen.
- Kostenloses Azure-Konto
Erstellen einer Azure-Ressource
Beginnen Sie mit der Verwendung der Bing Entity Search-API, indem Sie eine der folgenden Azure-Ressourcen erstellen.
Bing-Entity-Search-Ressource
- Verfügbar über das Azure-Portal, bis Sie die Ressource löschen.
- Verwenden Sie das kostenlose Preisniveau, um den Dienst auszuprobieren und später auf eine kostenpflichtige Stufe für die Produktion zu aktualisieren.
- Die Bing-Entitätssuche wird auch in kostenpflichtigen Ebenen der Bing Search v7-Ressourceangeboten.
Mehrdienstressource
- Verfügbar über das Azure-Portal, bis Sie die Ressource löschen.
- Verwenden Sie denselben Schlüssel und Endpunkt für Ihre Anwendungen in mehreren Azure AI-Diensten.
Erstellen und Initialisieren eines Projekts
Erstellen Sie eine neue C#-Konsolenlösung in Visual Studio.
Fügen Sie das Newtonsoft.Json NuGet-Paket hinzu.
- Klicken Sie im Projektmappen-Explorermit der rechten Maustaste auf Ihr Projekt.
- Wählen Sie NuGet-Pakete verwalten aus.
- Suchen Sie nach Newtonsoft.Json, und wählen Sie es aus, und installieren Sie dann das Paket.
Fügen Sie dann die folgenden Namespaces in die Hauptcodedatei ein:
using Newtonsoft.Json; using System; using System.Net.Http; using System.Text;Erstellen Sie eine neue Klasse, und fügen Sie Variablen für den API-Endpunkt, Ihren Abonnementschlüssel und die Abfrage hinzu, die Sie durchsuchen möchten. Sie können den globalen Endpunkt im folgenden Code verwenden oder den benutzerdefinierten Unterdomänen- Endpunkt verwenden, der im Azure-Portal für Ihre Ressource angezeigt wird.
namespace EntitySearchSample { class Program { static string host = "https://api.bing.microsoft.com"; static string path = "/v7.0/search"; static string market = "en-US"; // NOTE: Replace this example key with a valid subscription key. static string key = "ENTER YOUR KEY HERE"; static string query = "italian restaurant near me"; //... } }
Senden einer Anforderung und Abrufen der API-Antwort
Erstellen Sie innerhalb der Klasse eine Funktion namens
Search(). Erstellen Sie in dieser Funktion ein neuesHttpClientObjekt, und fügen Sie dem Header IhrenOcp-Apim-Subscription-KeyAbonnementschlüssel hinzu.Erstellen Sie den URI für Ihre Anforderung, indem Sie den Host und den Pfad kombinieren. Fügen Sie dann Ihren Markt hinzu und kodieren Sie Ihre Abfrage im URL-Format.
Warten Sie
client.GetAsync(), um eine HTTP-Antwort zu erhalten, und speichern Sie dann die JSON-Antwort, indem Sie darauf wartenReadAsStringAsync().Formatieren Sie die JSON-Zeichenfolge mit
JsonConvert.DeserializeObject(), und drucken Sie sie in der Konsole.async static void Search() { //... HttpClient client = new HttpClient(); client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", key); string uri = host + path + "?mkt=" + market + "&q=" + System.Net.WebUtility.UrlEncode(query); HttpResponseMessage response = await client.GetAsync(uri); string contentString = await response.Content.ReadAsStringAsync(); dynamic parsedJson = JsonConvert.DeserializeObject(contentString); Console.WriteLine(parsedJson); }Rufen Sie in der
Main()Methode Der Anwendung dieSearch()Funktion auf.static void Main(string[] args) { Search(); Console.ReadLine(); }
Beispiel für JSON-Antwort
Eine erfolgreiche Antwort wird in JSON zurückgegeben, wie im folgenden Beispiel gezeigt:
{
"_type": "SearchResponse",
"queryContext": {
"originalQuery": "italian restaurant near me",
"askUserForLocation": true
},
"places": {
"value": [
{
"_type": "LocalBusiness",
"webSearchUrl": "https://www.bing.com/search?q=sinful+bakery&filters=local...",
"name": "Liberty's Delightful Sinful Bakery & Cafe",
"url": "https://www.contoso.com/",
"entityPresentationInfo": {
"entityScenario": "ListItem",
"entityTypeHints": [
"Place",
"LocalBusiness"
]
},
"address": {
"addressLocality": "Seattle",
"addressRegion": "WA",
"postalCode": "98112",
"addressCountry": "US",
"neighborhood": "Madison Park"
},
"telephone": "(800) 555-1212"
},
. . .
{
"_type": "Restaurant",
"webSearchUrl": "https://www.bing.com/search?q=Pickles+and+Preserves...",
"name": "Munson's Pickles and Preserves Farm",
"url": "https://www.princi.com/",
"entityPresentationInfo": {
"entityScenario": "ListItem",
"entityTypeHints": [
"Place",
"LocalBusiness",
"Restaurant"
]
},
"address": {
"addressLocality": "Seattle",
"addressRegion": "WA",
"postalCode": "98101",
"addressCountry": "US",
"neighborhood": "Capitol Hill"
},
"telephone": "(800) 555-1212"
},
. . .
]
}
}