Adicionar cabeçalho personalizado em HttpWebRequest


Respostas:


171

Você usa a Headerspropriedade com um índice de string:

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

De acordo com o MSDN, isso está disponível desde:

  • Plataforma Universal do Windows 4.5
  • .NET Framework 1.1
  • Biblioteca de Classes Portátil
  • 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


também a string pode ser substituída por enum HttpRequestHeader como este httpWebRequest.Headers [HttpRequestHeader.Authorization] = "valor";
OXXY de

1
Isso não responderia à pergunta original, @OXXY. A HttpRequestHeaderenumeração é para cabeçalhos padrão - não para cabeçalhos personalizados.
Anders Tornblad de

existe uma propriedade chamada name na API de upload de arquivos do Google Drive, que deve ser enviada por meio do método post. Portanto, request.Headers ["name"] = "hello.txt"; Então, não está refletindo. Qualquer ajuda O que devemos usar para os personalizados?
Susarla Nikhilesh

Os dados POST não são enviados por meio dos cabeçalhos, portanto, este não é o lugar certo para a sua pergunta. Por favor, poste uma nova pergunta.
Anders Tornblad

16

Um método simples de criar o serviço, adicionando cabeçalhos e lendo a resposta 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
Authorizationnão é um cabeçalho personalizado e deve ser tratado de maneira mais controlada.
Anders Tornblad

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.