Добавить собственный заголовок в 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


также строку можно заменить на перечисление HttpRequestHeader, например httpWebRequest.Headers [HttpRequestHeader.Authorization] = "value";
OXXY

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

в API загрузки файла на Google Диск есть свойство с именем name, которое должно быть отправлено методом post. Итак, request.Headers ["name"] = "hello.txt"; Итак, это не отражается. Любая помощь Что мы должны использовать для пользовательских?
Susarla Nikhilesh

Данные POST не отправляются через заголовки, поэтому это не подходящее место для вашего вопроса. Пожалуйста, разместите новый вопрос.
Андерс Торнблад,

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не является настраиваемым заголовком, и с ним следует обращаться более контролируемым образом.
Андерс Торнблад

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.