Rychlý start: Odeslání žádosti o hledání do rozhraní REST API Bingu pro vyhledávání entit pomocí jazyka C#
Upozornění
30. října 2020 se rozhraní API Vyhledávání Bingu přesunula ze služeb Azure AI na Vyhledávání Bingu Services. Tato dokumentace je k dispozici pouze pro referenci. Aktualizovanou dokumentaci najdete v dokumentaci k rozhraní API bingu pro vyhledávání. Pokyny k vytváření nových prostředků Azure pro vyhledávání Bingem najdete v tématu Vytvoření prostředku Vyhledávání Bingu prostřednictvím Azure Marketplace.
Pomocí tohoto rychlého startu provedete první volání rozhraní API Bingu pro vyhledávání entit a zobrazíte odpověď JSON. Tato jednoduchá aplikace jazyka C# odešle do rozhraní API dotaz pro vyhledávání zpráv a zobrazí odpověď. Zdrojový kód této aplikace je k dispozici na GitHubu.
I když je tato aplikace napsaná v jazyce C#, rozhraní API je webová služba RESTful kompatibilní s většinou programovacích jazyků.
Požadavky
- Libovolná edice sady Visual Studio 2017 nebo novější.
- Nebo pokud používáte Linux nebo MacOS, můžete postupovat podle tohoto rychlého startu pomocí editoru Visual Studio Code a .NET Core.
- Bezplatný účet Azure
Vytvoření prostředku Azure
Začněte používat rozhraní API Bingu pro vyhledávání entit vytvořením jednoho z následujících prostředků Azure.
Prostředek Vyhledávání entit Bingu
- Dostupné prostřednictvím Azure Portal, dokud prostředek neodstraníte.
- K vyzkoušení služby použijte bezplatnou cenovou úroveň a později upgradujte na placenou úroveň pro produkční prostředí.
- Vyhledávání entit Bingu je také nabízeno na placených úrovních prostředku Vyhledávání Bingu v7.
Prostředek s více službami
- Dostupné prostřednictvím Azure Portal, dokud prostředek neodstraníte.
- Pro aplikace používejte stejný klíč a koncový bod napříč několika službami Azure AI.
Vytvoření a inicializace projektu
Vytvořte nové řešení konzoly jazyka C# v sadě Visual Studio.
Přidejte balíček NuGet Newtonsoft.Json .
- Klikněte pravým tlačítkem na projekt v Průzkumník řešení.
- Vyberte Spravovat balíčky NuGet.
- Vyhledejte a vyberte Newtonsoft.Json a pak balíček nainstalujte.
Pak do hlavního souboru kódu přidejte následující obory názvů:
using Newtonsoft.Json; using System; using System.Net.Http; using System.Text;
Vytvořte novou třídu a přidejte proměnné pro koncový bod rozhraní API, klíč předplatného a dotaz, který chcete prohledávat. Globální koncový bod můžete použít v následujícím kódu nebo vlastní koncový bod subdomény zobrazený v Azure Portal pro váš prostředek.
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"; //... } }
Odeslání požadavku a získání odpovědi rozhraní API
V rámci třídy vytvořte funkci s názvem
Search()
. V rámci této funkce vytvořte novýHttpClient
objekt a přidejte do záhlaví klíč předplatnéhoOcp-Apim-Subscription-Key
.Vytvořte identifikátor URI pro váš požadavek kombinací hostitele a cesty. Pak přidejte svůj trh a zakódujte svůj dotaz pomocí adresy URL.
Počkejte
client.GetAsync()
na získání odpovědi HTTP a pak uložte odpověď JSON čekánímReadAsStringAsync()
na .Naformátujte řetězec JSON pomocí
JsonConvert.DeserializeObject()
a vytiskněte ho do konzoly.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()
V metodě vaší aplikace zavolejteSearch()
funkci.static void Main(string[] args) { Search(); Console.ReadLine(); }
Příklad odpovědi JSON
Úspěšná odpověď se vrátí ve formátu JSON, jak je znázorněno v následujícím příkladu:
{
"_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"
},
. . .
]
}
}