Додайте власний заголовок у HttpWebRequest


Відповіді:


172

Ви використовуєте 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


також рядок можна замінити переліченням HttpRequestHeader, як цей httpWebRequest.Headers [HttpRequestHeader.Authorization] = "значення";
OXXY

1
Це не відповіло б на вихідне запитання @OXXY. Перелік HttpRequestHeaderпризначений для стандартних заголовків, а не для спеціальних.
Андерс Торнблад

в api для завантаження файлів google drive є властивість, що називається name, яку слід надсилати методом post. Отже, request.Headers ["name"] = "hello.txt"; Отже, це не відображає. Будь-яка допомога Що ми повинні використовувати для нестандартних?
Сусарла Нікхілеш,

Дані POST не надсилаються через заголовки, тому це не найкраще місце для вашого запитання. Будь ласка, опублікуйте нове запитання.
Андерс Торнблад,

17

Простий спосіб створення служби, додавання заголовків і читання відповіді 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не є спеціальним заголовком, і з ним слід працювати більш контрольовано.
Андерс Торнблад,

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.