在HttpWebRequest中添加自定义标头


Answers:


171

您可以将Headers属性与字符串索引一起使用:

request.Headers["X-My-Custom-Header"] = "the-value";

根据MSDN,此功能自以下日期开始可用:

  • 通用Windows平台4.5
  • .NET Framework 1.1
  • 可移植类库
  • Silverlight 2.0
  • Windows Phone Silverlight 7.0
  • Windows Phone 8.1

https://msdn.microsoft.com/zh-cn/library/system.net.httpwebrequest.headers(v=vs.110).aspx


该字符串也可以用枚举HttpRequestHeader替换,例如httpWebRequest.Headers [HttpRequestHeader.Authorization] =“ value”;
OXXY

1
那将无法回答原始问题@OXXY。该HttpRequestHeader枚举是标准的头-不是为了自定义的。
Anders Tornblad '16

Google驱动器文件上传api中有一个名为name的属性,该属性应通过post方法发送。因此,request.Headers [“ name”] =“ hello.txt”; 因此,它没有反映出来。任何帮助我们应该为定制服务使用什么?
Susarla Nikhilesh,

POST数据不是通过标头发送的,因此这不是您提出问题的正确位置。请发布一个新问题。
安德斯·吐布拉德18'Aug

16

创建服务,添加标头和读取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());
        }
    }

2
Authorization不是自定义标头,应以更受控的方式进行处理。
Anders Tornblad '17

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.