在HttpWebRequest中添加自定义标头

106

我需要向HttpWebRequest对象添加一些自定义标头。在Windows Phone 7中,如何向HttpWebRequest对象添加自定义标头。

4个回答

198

同时,可以使用枚举类型 HttpRequestHeader 替换字符串,如下所示:httpWebRequest.Headers[HttpRequestHeader.Authorization] = "value"; - OXXY
1
那并不能回答原问题,@OXXY。HttpRequestHeader 枚举是用于标准头部而非自定义头部的。 - Anders Marzi Tornblad
Google Drive文件上传API中有一个名为“name”的属性,应该通过POST方法发送。所以, request.Headers["name"] = "hello.txt"; 但是它没有反映出来。 需要帮助。 对于自定义的属性,我们应该使用什么? - Susarla Nikhilesh
POST数据不是通过Headers发送的,因此这不是您提问的正确位置。请发布一个新问题。 - Anders Marzi Tornblad

24

一个简单的创建服务、添加头信息并读取JSON响应的方法,

private static void WebRequest()
    {
        const string WEBSERVICE_URL = "<<Web service URL>>";
        try
        {
            var webRequest = System.Net.WebRequest.Create(WEBSERVICE_URL);
            if (webRequest != null)
            {
                webRequest.Method = "GET";
                webRequest.Timeout = 12000;
                webRequest.ContentType = "application/json";
                webRequest.Headers.Add("Authorization", "Basic dchZ2VudDM6cGFdGVzC5zc3dvmQ=");

                using (System.IO.Stream s = webRequest.GetResponse().GetResponseStream())
                {
                    using (System.IO.StreamReader sr = new System.IO.StreamReader(s))
                    {
                        var jsonResponse = sr.ReadToEnd();
                        Console.WriteLine(String.Format("Response: {0}", jsonResponse));
                    }
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.ToString());
        }
    }

3
"Authorization" 不是自定义标头,应以更受控制的方式处理。 - Anders Marzi Tornblad

2

2

首先,您需要访问您正在尝试获取响应的网页。

右键单击>检查>网络>(刷新)> 在名称下单击第一个链接>现在您可以看到请求头和响应头。

从那里,您可以查看请求头并相应地添加它们,例如:

HttpWebRequest HttpWReq = (HttpWebRequest)WebRequest.Create(url);

        HttpWReq.Method = "GET";
        HttpWReq.Headers.Add("accept-encoding", "gzip, deflate, br");
        HttpWReq.Headers.Add("cache-control", "max-age=0");
         HttpWReq.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36";
        HttpWReq.Headers.Add("accept-encoding", "gzip, deflate, br");
        HttpWReq.Headers.Add("accept-language", "en-US,en;q=0.9");
        HttpWReq.Headers.Add("cache-control", "max-age=0");
        HttpWReq.Headers.Add("upgrade-insecure-requests", "1");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接