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

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

從 JObject 創建 HttpRequestHeaders

從 JObject 創建 HttpRequestHeaders

C#
慕工程0101907 2022-07-10 10:24:05
    我為我的桌面軟件創建了一個 API,以避免每次我想對 HttpClient 標頭進行更改時進行編碼和重建,但我不知道如何創建自定義 HttpRequestHeader 列表并將其作為請求標頭添加到 HttpClient 中。我正在尋找這樣的解決方案:clients.DefaultRequestHeaders = list_of_json_header_values;到目前為止,這是我發出請求的代碼:public static string DownloadSource(string link){    try    {        HttpClientHandler hch = new HttpClientHandler();        hch.Proxy = null;        hch.UseProxy = false;        using (HttpClient clients = new HttpClient(hch))        {            //clients.DefaultRequestHeaders = list_of_json_header_values; ???            using (HttpResponseMessage response = clients.GetAsync(link).Result)            {                using (HttpContent content = response.Content)                {                    return content.ReadAsStringAsync().Result;                }            }        }    }    catch (Exception _ex)    {        MessageBox.Show(_ex.ToString());    }}這是我從 JSON 獲取標頭的方法:var headers_json = "json here";var objects = JObject.Parse(headers_json);foreach (var item in objects["header_settings"]){    //list_of_json_header_values.Add(item.ToString()); ???    Console.WriteLine(item.ToString());}控制臺輸出:"Cache-Control": "no-cache""User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0""Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8""Accept-Language": "en-GB,en;q=0.5"
查看完整描述

1 回答

?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

您可以制作這樣的擴展方法:


public static class HttpClientExtensions

{

    public static void AddHeadersFromJson(this HttpClient client, string json)

    {

        JObject obj = JObject.Parse(json);


        foreach (JProperty prop in obj["header_settings"].Children<JProperty>())

        {

            client.DefaultRequestHeaders.Add(prop.Name, (string)prop.Value);

        }

    }

}

然后你可以這樣做:


using (HttpClient client = new HttpClient(hch))

{

    client.AddHeadersFromJson(headers_json);


    ...

}


查看完整回答
反對 回復 2022-07-10
  • 1 回答
  • 0 關注
  • 89 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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