เพิ่มส่วนหัวที่กำหนดเองใน HttpWebRequest


คำตอบ:


175

คุณใช้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/en-us/library/system.net.httpwebrequest.headers(v=vs.110).aspx


ยังสามารถแทนที่สตริงด้วย enum HttpRequestHeader เช่นนี้ httpWebRequest.Headers [HttpRequestHeader.Authorization] = "ค่า"
OXXY

1
นั่นจะไม่ตอบคำถามเดิม @OXXY การHttpRequestHeaderแจงนับมีไว้สำหรับส่วนหัวมาตรฐานไม่ใช่สำหรับส่วนหัวที่กำหนดเอง
Anders Tornblad

มีคุณสมบัติที่เรียกว่าชื่อใน google drive file upload api ซึ่งควรส่งทางไปรษณีย์ ดังนั้น request.Headers ["name"] = "hello.txt"; ดังนั้นมันจึงไม่สะท้อน ความช่วยเหลือใด ๆ เราควรใช้อะไรสำหรับคนที่กำหนดเอง?
Susarla Nikhilesh

ข้อมูล POST ไม่ได้ส่งผ่านส่วนหัวดังนั้นจึงไม่ใช่สถานที่ที่เหมาะสมสำหรับคำถามของคุณ กรุณาโพสต์คำถามใหม่
Anders Tornblad

18

วิธีง่ายๆในการสร้างบริการเพิ่มส่วนหัวและอ่านการตอบสนอง 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 Tornblad

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.