Adicionar cabeçalho personalizado em HttpWebRequest

89

Preciso adicionar alguns cabeçalhos personalizados ao HttpWebRequestobjeto. Como posso adicionar Cabeçalho Personalizado ao HttpWebRequestobjeto no Windows Phone 7.

Nelson T Joseph
fonte

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

Anders Tornblad
fonte
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());
        }
    }
Tubarão
fonte
2
Authorizationnão é um cabeçalho personalizado e deve ser tratado de maneira mais controlada.
Anders Tornblad