C# 如何在C中解析Bing2API的PostAsync响应?
几个月前,Bing发布了新版本2的搜索API。MS认知服务提供了使用其新搜索API 2的示例。 然而,工作过的示例都是XML响应,只有部分C示例进行了调用,但没有解码结果 有人可以解释或继续示例代码,以便将返回的对象解析为实际的图像或图像URL吗?在下面的代码中,内容变量的类型为ByteArrayContent,但是从这个数组中获取信息需要什么?响应变量的类型为HttpResponseMessage,但如何从中提取图像或图像URL 这将允许应用程序选择并显示一个或多个返回的图像 非常感谢,蒂姆 下面是C代码示例:C# 如何在C中解析Bing2API的PostAsync响应?,c#,arrays,parsing,httpclient,bing-api,C#,Arrays,Parsing,Httpclient,Bing Api,几个月前,Bing发布了新版本2的搜索API。MS认知服务提供了使用其新搜索API 2的示例。 然而,工作过的示例都是XML响应,只有部分C示例进行了调用,但没有解码结果 有人可以解释或继续示例代码,以便将返回的对象解析为实际的图像或图像URL吗?在下面的代码中,内容变量的类型为ByteArrayContent,但是从这个数组中获取信息需要什么?响应变量的类型为HttpResponseMessage,但如何从中提取图像或图像URL 这将允许应用程序选择并显示一个或多个返回的图像 非常感谢,蒂姆
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);
}
}
}
}
经过一些尝试和错误,我发现插入以下代码首先将搜索响应转换为字符串,然后转换为JSON对象,可以对Bing的各种搜索结果进行解析
using Newtonsoft.Json;
....
....
response = await client.PostAsync(uri, content);
if (response.IsSuccessStatusCode)
{
Stringr str = await response.Content.ReadAsStringAsync();
dynamic json = JsonConvert.DeserializeObject(str);
}
经过一些尝试和错误,我发现插入以下代码首先将搜索响应转换为字符串,然后转换为JSON对象,可以对Bing的各种搜索结果进行解析
using Newtonsoft.Json;
....
....
response = await client.PostAsync(uri, content);
if (response.IsSuccessStatusCode)
{
Stringr str = await response.Content.ReadAsStringAsync();
dynamic json = JsonConvert.DeserializeObject(str);
}
是一个非常易于使用的客户端API,用于bing搜索API,您可以获得web搜索、图片、新闻。。。我也是。下面是一个小例子,说明如何使用它从C中的Bing搜索中获取图片
SearchResult result = await BingSearchHelper.Query("Bill Gates", new BingQueryParameters( apiKey: "APPKEY", count: 10, offset: 0, mkt: "en-us", safeSearch: "Moderate") );
Console.WriteLine(result.images.value[0].thumbnailUrl);
如果您将JSON或XML转换仅用于此目的,则不需要JSON或XML转换。
我希望它能帮助您。是一个非常易于使用的客户端API,用于bing搜索API,您可以获得web搜索、图片、新闻。。。我也是。下面是一个小例子,说明如何使用它从C中的Bing搜索中获取图片
SearchResult result = await BingSearchHelper.Query("Bill Gates", new BingQueryParameters( apiKey: "APPKEY", count: 10, offset: 0, mkt: "en-us", safeSearch: "Moderate") );
Console.WriteLine(result.images.value[0].thumbnailUrl);
如果您将JSON或XML转换仅用于此目的,则不需要JSON或XML转换。
我希望它能帮助你