Bing выпустил новую версию (2) своего API поиска несколько месяцев назад. MS Cognitive Services предоставляет примеры использования своего нового Search API 2.
https://dev.cognitive.microsoft.com/docs/services/56b43f0ccf5ff8098cef3808/operations/571fab09dbe2d933e891028f
Однако рабочие примеры имеют ответы XML, и есть только частичный пример C#, который выполняет вызов, но не декодирует результат.
Может ли кто-нибудь объяснить или продолжить пример кода, чтобы проанализировать возвращенный объект в фактические изображения или URL-адреса изображений? В приведенном ниже коде переменная content имеет тип ByteArrayContent, но что требуется для получения информации из этого массива? Переменная «ответ» имеет тип HttpResponseMessage, но как извлечь из нее изображения или URL-адреса изображений?
Это позволит приложению выбирать и отображать одно или несколько возвращаемых изображений.
Большое спасибо, Тим
Вот пример кода C#:
using System;
using System.Net.Http.Headers;
using System.Text;
using System.Net.Http;
using System.Web;
namespace CSHttpClientSample
{
static class Program
{
static void Main()
{
MakeRequest();
Console.WriteLine("Hit ENTER to exit...");
Console.ReadLine();
}
static async void MakeRequest()
{
var client = new HttpClient();
var queryString = HttpUtility.ParseQueryString(string.Empty);
// Request headers
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key",
"{subscription key}");
// Request parameters
queryString["q"] = "cats";
var uri =
"https://api.cognitive.microsoft.com/bing/v5.0/images/search?"
+ queryString;
HttpResponseMessage response;
// Request body
byte[] byteData = Encoding.UTF8.GetBytes("{body}");
using (var content = new ByteArrayContent(byteData))
{
content.Headers.ContentType = new MediaTypeHeaderValue(
"< your content type, i.e. application/json >");
response = await client.PostAsync(uri, content);
}
}
}
}