亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

.net HttpClient post api 響應未正確呈現

.net HttpClient post api 響應未正確呈現

C#
慕慕森 2023-07-22 15:46:22
https://nayapatrikadaily.com/news-article/2/News我正在嘗試使用 Http請求從新聞網站獲取 html 內容Post。但是在響應中,頁面返回 Unicode 字符。我在將 Unicode 字符轉換為 html 時遇到了阻礙。網址:var nayapatrika = await ApiClient.PostAsync("https://nayapatrikadaily.com/ajax/pagination.php");異步后:public static async Task<HtmlDocument> PostAsync(string uri){    string responseJson = string.Empty;    var htmlDocument = new HtmlDocument();    var handler = new HttpClientHandler()    {        AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate    };    using (var client = new HttpClient(handler))    {        client.DefaultRequestHeaders.AcceptEncoding.Add(new StringWithQualityHeaderValue("gzip"));        client.DefaultRequestHeaders.AcceptEncoding.Add(new StringWithQualityHeaderValue("deflate"));        var content = new MultipartFormDataContent();        var values = new[]        {            new KeyValuePair<string, string>("perPage", "20"),            new KeyValuePair<string, string>("page", "2"),            new KeyValuePair<string, string>("cat", "1"),        };        foreach (var keyValuePair in values)        {            content.Add(new StringContent(keyValuePair.Value), keyValuePair.Key);        }        var response = await client.PostAsync(uri, content);        if (response.IsSuccessStatusCode)        {            responseJson = await response.Content.ReadAsStringAsync();            htmlDocument.LoadHtml(responseJson);        }    }    return htmlDocument;}響應時,頁面始終返回以下字符。
查看完整描述

1 回答

?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

反序列化 api 響應對我來說很有效。正如我注意到的,它有兩個屬性:newsList和numPages。


我創建了該類:ResponseObj


public class ResponseObj

{

    public string numPage { get; set; }

    public string newsList { get; set; }

并反序列化為ResponseObj


var obj = JsonConvert.DeserializeObject<ResponseObj>(responseJson);


var response = await client.PostAsync(uri, content);

if (response.IsSuccessStatusCode)

{



    responseJson = await response.Content.ReadAsStringAsync();


    var obj = JsonConvert.DeserializeObject<ResponseObj>(responseJson);


    htmlDocument.LoadHtml(obj.newsList);

}


查看完整回答
反對 回復 2023-07-22
  • 1 回答
  • 0 關注
  • 203 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號