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.