具有潜在重定向的 HttpClient?
HttpClient with a potential redirect?
这里似乎有重定向 URL?
代码:
using (HttpClient http = new HttpClient())
{
var jsonRersponse = http.GetStringAsync("https://www.buchhandel.de/jsonapi/products?filter[products][query]=(st=Romane,%20Lyrik)%20und%20ej=2000^*&filter[keepPage]=true&page[number]=18&page[size]=100&sort[score]=desc").Result;
Bla myDeserializedClass = JsonConvert.DeserializeObject<Bla>(jsonRersponse);
}
我得到:
System.AggregateException: 'One or more errors occurred. (Response status code does not indicate success: 404 ().)'
在浏览器中打开 URL 结果(,但最终得到结果):
我能做什么?
您没有设置接受 header。
我发现您需要设置 Accept header 以使 url 响应数据。
我在 Powershell
中发现了这个
$url='/jsonapi/products?filter[products][query]=(st=Romane,%20Lyrik)%20und%20ej=2000^*&filter[keepPage]=true&page[number]=18&page[size]=100&sort[score]=desc'
$host1='https://www.buchhandel.de'
$uri = new-object System.Uri ($host1 + $url2),$true
$client = new-object System.Net.WebClient
#Accept header is required
$client.Headers.Add("Accept","*/*")
$s = $client.DownloadString($uri)
$client.Dispose()
Write-Host $s
在 C# 中:
using (HttpClient http = new HttpClient())
{
http.DefaultRequestHeaders.Add("Accept", "*/*");
var jsonRersponse = http.GetStringAsync("https://www.buchhandel.de/jsonapi/products?filter[products][query]=(st=Romane,%20Lyrik)%20und%20ej=2000^*&filter[keepPage]=true&page[number]=18&page[size]=100&sort[score]=desc").Result;
Bla myDeserializedClass = JsonConvert.DeserializeObject<Bla>(jsonRersponse);
}
这里似乎有重定向 URL?
代码:
using (HttpClient http = new HttpClient())
{
var jsonRersponse = http.GetStringAsync("https://www.buchhandel.de/jsonapi/products?filter[products][query]=(st=Romane,%20Lyrik)%20und%20ej=2000^*&filter[keepPage]=true&page[number]=18&page[size]=100&sort[score]=desc").Result;
Bla myDeserializedClass = JsonConvert.DeserializeObject<Bla>(jsonRersponse);
}
我得到:
System.AggregateException: 'One or more errors occurred. (Response status code does not indicate success: 404 ().)'
在浏览器中打开 URL 结果(,但最终得到结果):
我能做什么?
您没有设置接受 header。 我发现您需要设置 Accept header 以使 url 响应数据。 我在 Powershell
中发现了这个$url='/jsonapi/products?filter[products][query]=(st=Romane,%20Lyrik)%20und%20ej=2000^*&filter[keepPage]=true&page[number]=18&page[size]=100&sort[score]=desc'
$host1='https://www.buchhandel.de'
$uri = new-object System.Uri ($host1 + $url2),$true
$client = new-object System.Net.WebClient
#Accept header is required
$client.Headers.Add("Accept","*/*")
$s = $client.DownloadString($uri)
$client.Dispose()
Write-Host $s
在 C# 中:
using (HttpClient http = new HttpClient())
{
http.DefaultRequestHeaders.Add("Accept", "*/*");
var jsonRersponse = http.GetStringAsync("https://www.buchhandel.de/jsonapi/products?filter[products][query]=(st=Romane,%20Lyrik)%20und%20ej=2000^*&filter[keepPage]=true&page[number]=18&page[size]=100&sort[score]=desc").Result;
Bla myDeserializedClass = JsonConvert.DeserializeObject<Bla>(jsonRersponse);
}