Megosztás a következőn keresztül:


Rövid útmutató: Keresési kérés küldése a Bing Entity Search REST API-nak a C használatával#

Figyelmeztetés

2020. október 30-án a Bing Search API-k átkerültek az Azure AI-szolgáltatásokból a Bing Search Servicesbe. Ez a dokumentáció csak referenciaként szolgál. A frissített dokumentációt a Bing search API dokumentációjában találja. Az új Azure-erőforrások Bing-kereséshez való létrehozásával kapcsolatos útmutatásért lásd: Bing Search-erőforrás létrehozása a Azure Marketplace keresztül.

Ezzel a rövid útmutatóval kezdeményezheti első hívását a Bing Entity Search API-ra, és megtekintheti a JSON-választ. Ez az egyszerű C#-alkalmazás hírkeresési lekérdezést küld az API-nak, és megjeleníti a választ. Az alkalmazás forráskódja elérhető a GitHubon.

Bár ez az alkalmazás C#-ban van megírva, az API egy RESTful webszolgáltatás, amely kompatibilis a legtöbb programozási nyelvvel.

Előfeltételek

Azure-erőforrás létrehozása

Kezdje el használni a Bing Entity Search API-t az alábbi Azure-erőforrások egyikének létrehozásával.

Bing Entity Search-erőforrás

  • Az Azure Portal keresztül érhető el, amíg el nem törli az erőforrást.
  • Az ingyenes tarifacsomag használatával próbálja ki a szolgáltatást, és frissítsen később egy fizetős szintre éles környezetben.
  • A Bing Entity Search a Bing Search v7-erőforrás fizetős szintjeiben is elérhető.

Többszolgáltatásos erőforrás

  • Az Azure Portal keresztül érhető el, amíg el nem törli az erőforrást.
  • Használja ugyanazt a kulcsot és végpontot az alkalmazásokhoz több Azure AI-szolgáltatásban.

Projekt létrehozása és inicializálása

  1. Hozzon létre egy új C#-konzolmegoldást a Visual Studióban.

  2. Adja hozzá a Newtonsoft.Json NuGet-csomagot.

    1. Kattintson a jobb gombbal a projektre a Megoldáskezelő.
    2. Válassza a NuGet-csomagok kezelése lehetőséget.
    3. Keresse meg és válassza a Newtonsoft.Json lehetőséget, majd telepítse a csomagot.
  3. Ezután adja hozzá a következő névtereket a fő kódfájlhoz:

    using Newtonsoft.Json;
    using System;
    using System.Net.Http;
    using System.Text;
    
  4. Hozzon létre egy új osztályt, és adjon hozzá változókat az API-végponthoz, az előfizetési kulcshoz és a keresendő lekérdezéshez. A globális végpontot az alábbi kódban használhatja, vagy használhatja az erőforráshoz tartozó Azure Portal megjelenő egyéni altartományvégpontot.

    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";
        //...
        }
    }
    

Kérés küldése és az API-válasz lekérése

  1. Az osztályon belül hozzon létre egy nevű függvényt Search(). Ebben a függvényben hozzon létre egy új HttpClient objektumot, és adja hozzá az előfizetési kulcsot a Ocp-Apim-Subscription-Key fejléchez.

  2. Hozza létre a kérés URI-ját a gazdagép és az elérési út kombinálásával. Ezután adja hozzá a piacát és az URL-kódolást a lekérdezéshez.

  3. Várjon client.GetAsync() , hogy http-választ kapjon, majd tárolja a JSON-választ a várakozással ReadAsStringAsync().

  4. Formázza a JSON-sztringet és JsonConvert.DeserializeObject() nyomtassa ki a konzolra.

    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);
    }
    
  5. Main() Az alkalmazás metódusában hívja meg a függvénytSearch().

    static void Main(string[] args)
    {
        Search();
        Console.ReadLine();
    }
    

Példa JSON-válaszra

A rendszer JSON formátumban ad vissza egy sikeres választ a következő példában látható módon:

{
  "_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"
      },
      
      . . .
    ]
  }
}

Következő lépések