Schnellstart: Aufrufen Ihres Endpunkts für die benutzerdefinierte Bing-Suche mit C#
Warnung
Am 30. Oktober 2020 wurden die Bing-Suche-APIs aus den Azure KI Services in die Bing-Suchdienste verschoben. Diese Dokumentation wird nur zu Referenzzwecken 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 zu lernen, wie Sie Suchergebnisse von Ihrer Instanz der benutzerdefinierten Bing-Suche anfordern. Diese Anwendung ist zwar in C# geschrieben, aber die API für die benutzerdefinierte Bing-Suche ist ein RESTful-Webdienst, der mit den meisten Programmiersprachen kompatibel ist. Den Quellcode des Beispiels finden Sie auf GitHub.
Voraussetzungen
Eine Instanz der benutzerdefinierten Bing-Suche. Weitere Informationen finden Sie unter Quickstart: Erstellen Ihrer ersten Instanz der benutzerdefinierten Bing-Suche.
Eine beliebige Edition von Visual Studio 2019 oder höher
Unter Linux/macOS kann diese Anwendung mit Mono ausgeführt werden.
Das NuGet-Paket für die benutzerdefinierte Bing-Suche.
So installieren Sie das Paket in Visual Studio:
- Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Ihr Projekt, und wählen Sie NuGet-Pakete verwalten aus.
- Suchen Sie nach Microsoft.Azure.CognitiveServices.Search.CustomSearch, wählen Sie das Paket aus, und installieren Sie es.
Wenn Sie das NuGet-Paket für die benutzerdefinierte Bing-Suche installieren, werden von Visual Studio außerdem die folgenden Pakete installiert:
- Microsoft.Rest.ClientRuntime
- Microsoft.Rest.ClientRuntime.Azure
- Newtonsoft.Json
Erstellen einer Azure-Ressource
Beginnen Sie mit der Verwendung der API für die benutzerdefinierte Bing-Suche, indem Sie eine der folgenden Azure-Ressourcen erstellen:
Ressource für die benutzerdefinierte Bing-Suche
- Verfügbar über das Azure-Portal, bis Sie die Ressource löschen.
- Verwenden Sie den Tarif „Free“, um den Dienst zu testen, und führen Sie später für die Produktion ein Upgrade auf einen kostenpflichtigen Tarif durch.
Ressource für mehrere Dienste
- Verfügbar über das Azure-Portal, bis Sie die Ressource löschen.
- Verwenden Sie in allen Azure KI Services-Instanzen denselben Schlüssel und Endpunkt für Ihre Anwendungen.
Erstellen und Initialisieren der Anwendung
Erstellen Sie eine neue C#-Konsolenanwendung in Visual Studio. Fügen Sie Ihrem Projekt dann die folgenden Pakete hinzu:
using System; using System.Net.Http; using System.Web; using Newtonsoft.Json;
Erstellen Sie die folgenden Klassen, um die Suchergebnisse zu speichern, die von der API für die benutzerdefinierte Bing-Suche zurückgegeben werden:
public class BingCustomSearchResponse { public string _type{ get; set; } public WebPages webPages { get; set; } } public class WebPages { public string webSearchUrl { get; set; } public int totalEstimatedMatches { get; set; } public WebPage[] value { get; set; } } public class WebPage { public string name { get; set; } public string url { get; set; } public string displayUrl { get; set; } public string snippet { get; set; } public DateTime dateLastCrawled { get; set; } public string cachedPageUrl { get; set; } }
Erstellen Sie in der main-Methode Ihres Projekts die folgenden Variablen für Ihren Abonnementschlüssel der API für die benutzerdefinierte Bing-Suche, die benutzerdefinierte Konfigurations-ID Ihrer Suchinstanz und einen Suchbegriff:
var subscriptionKey = "YOUR-SUBSCRIPTION-KEY"; var customConfigId = "YOUR-CUSTOM-CONFIG-ID"; var searchTerm = args.Length > 0 ? args[0]:"microsoft";
Erstellen Sie die Anforderungs-URL, indem Sie Ihren Suchbegriff an den Abfrageparameter
q=
und Ihre benutzerdefinierte Konfigurations-ID der Suchinstanz an den Parametercustomconfig=
anfügen. Trennen Sie die Parameter durch ein kaufmännisches Und-Zeichen (&
) voneinander. Für den Wert der Variableurl
können Sie den globalen Endpunkt im folgenden Code oder den Endpunkt der benutzerdefinierten Unterdomäne verwenden, der im Azure-Portal für Ihre Ressource angezeigt wird.var url = "https://api.cognitive.microsoft.com/bingcustomsearch/v7.0/search?" + "q=" + searchTerm + "&" + "customconfig=" + customConfigId;
Senden und Empfangen einer Suchanforderung
Erstellen Sie einen Anforderungsclient, und fügen Sie Ihren Abonnementschlüssel dem Header
Ocp-Apim-Subscription-Key
hinzu.var client = new HttpClient(); client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey);
Führen Sie die Suchanforderung aus, und rufen Sie die Antwort als JSON-Objekt ab.
var httpResponseMessage = client.GetAsync(url).Result; var responseContent = httpResponseMessage.Content.ReadAsStringAsync().Result; BingCustomSearchResponse response = JsonConvert.DeserializeObject<BingCustomSearchResponse>(responseContent);
Lassen Sie die Ergebnisse verarbeiten und anzeigen.
Durchlaufen Sie das Antwortobjekt, um Informationen zu den einzelnen Suchergebnissen anzuzeigen, z.B. Name, URL und das Datum des letzten Crawl-Vorgangs der Webseite.
for(int i = 0; i < response.webPages.value.Length; i++) { var webPage = response.webPages.value[i]; Console.WriteLine("name: " + webPage.name); Console.WriteLine("url: " + webPage.url); Console.WriteLine("displayUrl: " + webPage.displayUrl); Console.WriteLine("snippet: " + webPage.snippet); Console.WriteLine("dateLastCrawled: " + webPage.dateLastCrawled); Console.WriteLine(); } Console.WriteLine("Press any key to exit..."); Console.ReadKey();