Quickstart: Aanroepen van uw Bing Custom Search-eindpunt met C#
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 zoek-API-documentatie voor bijgewerkte documentatie. Zie Een Zoeken in Bing resource maken via de Azure Marketplace voor instructies voor 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 toepassing is geschreven in C#, 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.
Een versie van Visual Studio 2019 of hoger.
Als u Linux/MacOS gebruikt, kan deze toepassing worden uitgevoerd met behulp van Mono.
Het NuGet-pakket Bing Custom Search.
U kunt dit pakket als volgt installeren in Visual Studio:
- Klik met de rechtermuisknop op het project in Solution Explorer en selecteer vervolgens NuGet-pakketten beheren.
- Zoek en selecteer Microsoft.Azure.CognitiveServices.Search.CustomSearch en installeer vervolgens het pakket.
Wanneer u het NuGet-pakket Bing Custom Search installeert, installeert Visual Studio ook de volgende pakketten:
- Microsoft.Rest.ClientRuntime
- Microsoft.Rest.ClientRuntime.Azure
- Newtonsoft.Json
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 in Visual Studio een nieuwe C#-consoletoepassing. Voeg vervolgens de volgende pakketten toe aan uw project:
using System; using System.Net.Http; using System.Web; using Newtonsoft.Json;
Maak de volgende klassen om de zoekresultaten op te slaan die door de Bing Custom Search-API worden geretourneerd:
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; } }
Maak in de hoofdmethode van uw project de volgende variabelen voor uw abonnementssleutel van de Bing Custom Search-API, de aangepaste configuratie-ID van de zoekinstantie en een zoekterm:
var subscriptionKey = "YOUR-SUBSCRIPTION-KEY"; var customConfigId = "YOUR-CUSTOM-CONFIG-ID"; var searchTerm = args.Length > 0 ? args[0]:"microsoft";
Stel de aanvraag-URL samen door uw zoekterm toe te voegen aan de queryparameter
q=
, en de aangepaste configuratie-id van uw zoekinstantie aan de parametercustomconfig=
. Scheid de parameters van elkaar met een en-teken (&
). Voor de variabele waarde voorurl
kunt u het globale eindpunt in de volgende code gebruiken of het eindpunt voor het aangepaste subdomein gebruiken dat voor uw resource wordt weergegeven in Azure Portal.var url = "https://api.cognitive.microsoft.com/bingcustomsearch/v7.0/search?" + "q=" + searchTerm + "&" + "customconfig=" + customConfigId;
Een zoekaanvraag verzenden en ontvangen
Maak een aanvraag-client, en voeg uw abonnementssleutel toe aan de
Ocp-Apim-Subscription-Key
-header.var client = new HttpClient(); client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey);
Voer de zoekaanvraag uit en haal de reactie op als een JSON-object.
var httpResponseMessage = client.GetAsync(url).Result; var responseContent = httpResponseMessage.Content.ReadAsStringAsync().Result; BingCustomSearchResponse response = JsonConvert.DeserializeObject<BingCustomSearchResponse>(responseContent);
De resultaten verwerken en weergeven
Doorloop het reactieobject om informatie weer te geven over elk zoekresultaat, waaronder de naam, de URL en de datum waarop de webpagina voor het laatst is gecrawld.
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();