Agregar encabezado personalizado en HttpWebRequest


Respuestas:


172

Usas la Headerspropiedad con un índice de cadena:

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

Según MSDN, esto ha estado disponible desde:

  • Plataforma universal de Windows 4.5
  • .NET Framework 1.1
  • Biblioteca de clases 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


también la cadena se puede reemplazar con la enumeración HttpRequestHeader como este httpWebRequest.Headers [HttpRequestHeader.Authorization] = "valor";
OXXY

1
Eso no respondería a la pregunta original, @OXXY. La HttpRequestHeaderenumeración es para encabezados estándar, no para personalizados.
Anders Tornblad

hay una propiedad llamada nombre en la API de carga de archivos de Google Drive, que debe enviarse a través del método de publicación. Entonces, request.Headers ["name"] = "hello.txt"; Entonces, no se refleja. Cualquier ayuda ¿Qué debemos usar para los personalizados?
Susarla Nikhilesh

Los datos POST no se envían a través de encabezados, por lo que este no es el lugar adecuado para su pregunta. Publica una nueva pregunta.
Anders Tornblad

17

Un método simple para crear el servicio, agregar encabezados y leer la respuesta 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
Authorizationno es un encabezado personalizado y debe manejarse de una manera más controlada.
Anders Tornblad

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.