如何使用' Accept: application/ JSON '从Check-Host请求JSON文件.Net api



我试图得到json文件响应如下:

{
"ok":             1,
"request_id":     "807dab",
"permanent_link": "https://check-host.net/check-report/807dab",
"nodes": {
"us1.node.check-host.net": ["us", "USA", "Los Angeles", "5.253.30.82", "AS18978"],
"ch1.node.check-host.net": ["ch", "Switzerland", "Zurich", "179.43.148.195", "AS50837"]
}
}

的代码:

Uri uri = new Uri("https://check-host.net/check-tcp?host=https://sheypoor.com&max_nodes=1&node=us1.node.check-host.net");
HttpClient client = new HttpClient();
string result = client.GetStringAsync(uri).Result;
Root root = JsonConvert.DeserializeObject<Root>(result);
Console.WriteLine(root.nodes.Us1NodeCheckHostNet[0]);

但它没有工作!有人能告诉我正确的方法吗?

我是这样做的:

我写了一个方法来获得一个HTTPClient与de接受头和基本uri。

protected virtual Task<HttpClient> GetHttpClientAsync()
{
var client = _httpClientFactory.CreateClient();
client.BaseAddress = new Uri(_settings.BaseUri);
client.DefaultRequestHeaders.Add("Accept", MediaTypeNames.Application.Json);
client.Timeout = TimeSpan.FromSeconds(10);
return Task.FromResult(client);
}

当你初始化你的客户端后,你可以发送你的请求如下:

using var client = await GetHttpClientAsync();
using var response = await client.GetAsync(path);

我找到了我的结果,我不得不添加标题到httpclient请求:

HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Add("Accept", "application/json");
string result = client.GetStringAsync(uri).Result;

,然后它工作!