Snabbstart: Skicka en sökbegäran till REST-API:et för entitetssökning i Bing 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 för att göra ditt första anrop till API för entitetssökning i Bing och visa JSON-svaret. Det här enkla C#-programmet skickar en nyhetssökfråga till API:et och visar svaret. Källkoden för det här programmet är tillgänglig på GitHub.
Även om det här programmet är skrivet i C#, är API:et en RESTful-webbtjänst som är kompatibel med de flesta programmeringsspråk.
Förutsättningar
- Alla utgåvor av Visual Studio 2017 eller senare.
- Eller om du använder Linux eller MacOS kan du följa den här snabbstarten med Visual Studio Code och .NET Core
- Kostnadsfritt Azure-konto
Skapa en Azure-resurs
Börja använda API:et för entitetssökning i Bing genom att skapa någon av följande Azure-resurser.
Resurs för entitetssökning 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.
- Entitetssökning i Bing erbjuds också i betalda nivåer för resursen Bing-sökning v7.
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 ett projekt
Skapa en ny C#-konsollösning i Visual Studio.
Lägg till NuGet-paketet Newtonsoft.Json .
- Högerklicka på projektet i Solution Explorer.
- Välj Hantera NuGet-paket.
- Sök efter och välj Newtonsoft.Json och installera sedan paketet.
Lägg sedan till följande namnområden i huvudkodfilen:
using Newtonsoft.Json; using System; using System.Net.Http; using System.Text;
Skapa en ny klass och lägg till variabler för API-slutpunkten, din prenumerationsnyckel och den fråga som du vill söka i. Du kan använda den globala slutpunkten i följande kod eller använda den anpassade underdomänslutpunkten som visas i Azure Portal för resursen.
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"; //... } }
Skicka en begäran och få API-svaret
I klassen skapar du en funktion med namnet
Search()
. I den här funktionen skapar du ett nyttHttpClient
objekt och lägger till din prenumerationsnyckel iOcp-Apim-Subscription-Key
huvudet.Skapa URI för din begäran genom att kombinera värd och sökväg. Lägg sedan till din marknad och URL-koda frågan.
Vänta på
client.GetAsync()
att få ett HTTP-svar och lagra sedan JSON-svaret genom att vänta påReadAsStringAsync()
.Formatera JSON-strängen med
JsonConvert.DeserializeObject()
och skriv ut den till konsolen.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); }
Main()
Anropa funktionen i metoden för ditt programSearch()
.static void Main(string[] args) { Search(); Console.ReadLine(); }
Exempel på JSON-svar
Ett svar som anger att åtgärden lyckades returneras i JSON, som du ser i följande exempel:
{
"_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"
},
. . .
]
}
}