[英]API response in XML badly encoded, how to correct/convert the string?
我正在使用發送 XML 請求並接收 XML 響應的 HttpClient 查詢某些 API。
var response = await this.httpClient.PostAsync(apiUrl, new StringContent(content, Encoding.UTF8, "application/xml")));
var responseXml = await response.Content.ReadAsStringAsync();
但是responseXml
包含
<errorMessage>Je vyžadována autentizace.</errorMessage>
它應該是Je vyžadována autentizace 。 知道可能導致這種行為的原因以及如何從中獲取正確的字符串嗎?
花了幾個小時,就像我寫這個問題一樣,我想出了解決方案。
必須從ReadAsStringAsync()
切換到ReadAsByteArrayAsync()
並將其解碼為 UTF8,響應以 ISO-8859-1 編碼。
var responseXml = Encoding.UTF8.GetString(await response.Content.ReadAsByteArrayAsync());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.