Thêm tiêu đề tùy chỉnh trong HttpWebRequest


Câu trả lời:


172

Bạn sử dụng thuộc Headerstính với chỉ mục chuỗi:

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

Theo MSDN, điều này đã có sẵn kể từ:

  • Nền tảng Windows phổ quát 4.5
  • .NET Framework 1.1
  • Thư viện lớp di động
  • Silverlight 2.0
  • Windows Phone Silverlight 7.0
  • Windows Phone 8.1

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


cũng có thể thay thế chuỗi bằng enum HttpRequestHeader như sau httpWebRequest.Headers [HttpRequestHeader.Authorization] = "value";
OXXY

1
Điều đó sẽ không trả lời câu hỏi ban đầu, @OXXY. Việc HttpRequestHeaderliệt kê dành cho các tiêu đề chuẩn - không dành cho các tiêu đề tùy chỉnh.
Anders Tornblad

có một thuộc tính được gọi là tên trong api tải lên tệp google drive, cần được gửi qua phương thức bưu điện. Vì vậy, request.Headers ["name"] = "hello.txt"; Vì vậy, nó không phản ánh. Bất kỳ trợ giúp Chúng tôi nên sử dụng gì cho các tùy chỉnh?
Susarla Nikhilesh

Dữ liệu POST không được gửi qua Headers, vì vậy đây không phải là nơi thích hợp cho câu hỏi của bạn. Vui lòng đăng một câu hỏi mới.
Anders Tornblad

17

Một phương pháp đơn giản để tạo dịch vụ, thêm tiêu đề và đọc phản hồi 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
Authorizationkhông phải là một tiêu đề tùy chỉnh và nên được xử lý theo cách kiểm soát hơn.
Anders Tornblad

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.