具有潜在重定向的 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);                         
}