Wie behebe ich eine JSON-Antwort von Sonderzeichen?Wie behebe ich eine JSON-Antwort von Sonderzeichen?
Wenn ich das Postbote-Tool mit diesem URL verwende, erhalte ich gültige und erwartete JSON.
Wenn ich jedoch eine HTTP-Anfrage mit dieser URL innerhalb. NET, bekomme ich eine Antwort von Sonderzeichen.
Der Code ist der folgende:
let url = String.Format(TagsUrl, pageNumber |> string)
let client = httpClient APIBaseAddress
let response = client.GetAsync(url) |> Async.AwaitTask
|> Async.RunSynchronously
if response.IsSuccessStatusCode
then let json = response.Content.ReadAsStringAsync() |> Async.AwaitTask |> Async.RunSynchronously
let result = JsonConvert.DeserializeObject<Response>(json)
let tags = result.items |> List.ofSeq
|> List.map (fun i -> i.name)
tags
else []
I auch versucht, die Reaktion in als Byte-Array zu lesen, aber mit dem gleichen Ergebnis:
let url = String.Format(TagsUrl, pageNumber |> string)
let client = httpClient APIBaseAddress
let response = client.GetByteArrayAsync(url) |> Async.AwaitTask
|> Async.RunSynchronously
let json = Encoding.UTF8.GetString(response);
let result = JsonConvert.DeserializeObject<Response>(json)
Anhang:
[<Literal>]
let TagsUrl = "2.2/tags?page={0}&order=desc&sort=popular&site=stackoverflow&filter=!-.G.68grSaJm"
[<Literal>]
let APIBaseAddress = "https://api.stackexchange.com/"
type Item = { name : string }
type Response = { items: Item list }
Diese URL GZipped Inhalt zurückgibt, die dekomprimiert werden müssen, finden Sie https://stackoverflow.com/questions/20990601/decompressing-gzip-stream-from-httpclient-response –
Thank Sie. Dieser Link, den Sie angegeben haben, hat mein Problem gelöst. –
Mögliches Duplikat von [Dekomprimieren von GZip Stream aus HTTPClient Response] (https://stackoverflow.com/questions/20990601/decompressing-gzip-stream-from-httpclient-response) –