Snabbstart: Anropa slutpunkten för anpassad Bing-sökning med C#
Varning
Den 30 oktober 2020 flyttade Bing-sökning API:er från Azure AI-tjänster till Bing-sökning Services. Den här dokumentationen tillhandahålls endast som referens. Uppdaterad dokumentation finns i dokumentationen för API:et för Bing-sökning. Anvisningar om hur du skapar nya Azure-resurser för Bing-sökning finns i Skapa en Bing-sökning resurs via Azure Marketplace.
Använd den här snabbstarten om du vill lära dig hur du begär sökresultat från din anpassade Bing-sökinstans. Även om det här programmet är skrivet i C#, är API:et för anpassad sökning i Bing en RESTful-webbtjänst som är kompatibel med de flesta programmeringsspråk. Källkoden för det här exemplet är tillgänglig på GitHub.
Förutsättningar
En instans av anpassad Bing-sökning. Mer information finns i Snabbstart: Skapa din första anpassade Bing-sökinstans.
Alla utgåvor av Visual Studio 2019 eller senare.
Om du använder Linux/Mac OS kan det här programmet köras med Mono.
NuGet-paketet för anpassad sökning i Bing .
Så här installerar du det här paketet i Visual Studio:
- Högerklicka på projektet i Solution Explorer och välj sedan Hantera NuGet-paket.
- Sök efter och välj Microsoft.Azure.CognitiveServices.Search.CustomSearch och installera sedan paketet.
När du installerar NuGet-paketet för anpassad sökning i Bing installerar Visual Studio även följande paket:
- Microsoft.Rest.ClientRuntime
- Microsoft.Rest.ClientRuntime.Azure
- Newtonsoft.Json
Skapa en Azure-resurs
Börja använda API:et för anpassad sökning i Bing genom att skapa någon av följande Azure-resurser.
Anpassad sökresurs i Bing
- Tillgänglig via Azure Portal tills du tar bort resursen.
- Använd den kostnadsfria prisnivån för att prova tjänsten och uppgradera senare till en betald nivå för produktion.
Resurs för flera tjänster
- Tillgänglig via Azure Portal tills du tar bort resursen.
- Använd samma nyckel och slutpunkt för dina program i flera Azure AI-tjänster.
Skapa och initiera appen
Skapa ett nytt C#-konsolprogram i Visual Studio. Lägg sedan till följande paket i projektet:
using System; using System.Net.Http; using System.Web; using Newtonsoft.Json;
Skapa följande klasser för att lagra sökresultaten som returneras av API:et för anpassad sökning i Bing:
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; } }
I huvudmetoden för projektet skapar du följande variabler för prenumerationsnyckeln för api för anpassad sökning i Bing, sökinstansens anpassade konfigurations-ID och sökterm:
var subscriptionKey = "YOUR-SUBSCRIPTION-KEY"; var customConfigId = "YOUR-CUSTOM-CONFIG-ID"; var searchTerm = args.Length > 0 ? args[0]:"microsoft";
Skapa begärande-URL:en genom att lägga till söktermen
q=
till frågeparametern och sökinstansens anpassade konfigurations-ID till parameterncustomconfig=
. Avgränsa parametrarna med ett et-tecken (&
).url
För variabelvärdet kan du använda den globala slutpunkten i följande kod eller använda den anpassade underdomänslutpunkten som visas i Azure Portal för resursen.var url = "https://api.cognitive.microsoft.com/bingcustomsearch/v7.0/search?" + "q=" + searchTerm + "&" + "customconfig=" + customConfigId;
Skicka och ta emot en sökbegäran
Skapa en begäranklient och lägg till prenumerationsnyckeln i
Ocp-Apim-Subscription-Key
-rubriken.var client = new HttpClient(); client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey);
Utför sökbegäran och få svaret som ett JSON-objekt.
var httpResponseMessage = client.GetAsync(url).Result; var responseContent = httpResponseMessage.Content.ReadAsStringAsync().Result; BingCustomSearchResponse response = JsonConvert.DeserializeObject<BingCustomSearchResponse>(responseContent);
Bearbeta och visa svaren
Iterera över svarsobjektet för att visa information om varje sökresultat, inklusive dess namn, URL och webbsidans senaste crawlningsdatum.
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();