Dodaj niestandardowy nagłówek w HttpWebRequest

Odpowiedzi:

172

Używasz Headerswłaściwości z indeksem ciągu:

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

Według MSDN jest to dostępne od:

  • Uniwersalna platforma Windows 4.5
  • .NET Framework 1.1
  • Przenośna biblioteka klas
  • 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
źródło
również ciąg można zastąpić wyliczeniem HttpRequestHeader, takim jak ten httpWebRequest.Headers [HttpRequestHeader.Authorization] = "wartość";
OXXY,
1
To nie odpowiadałoby na pierwotne pytanie, @OXXY. HttpRequestHeaderWyliczenie jest dla standardowych nagłówków - nie dla tych niestandardowych.
Anders Tornblad
istnieje właściwość o nazwie nazwa w interfejsie API przesyłania pliku na dysk Google, która powinna zostać przesłana metodą pocztową. Tak więc request.Headers ["name"] = "hello.txt"; Więc to nie odzwierciedla. Każda pomoc Czego powinniśmy używać do niestandardowych?
Susarla Nikhilesh
Dane POST nie są przesyłane przez nagłówki, więc to nie jest właściwe miejsce na Twoje pytanie. Proszę zadać nowe pytanie.
Anders Tornblad
17

Prosta metoda tworzenia usługi, dodawanie nagłówków i odczytywanie odpowiedzi 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());
        }
    }
Rekin
źródło
3
Authorizationnie jest niestandardowym nagłówkiem i powinien być obsługiwany w bardziej kontrolowany sposób.
Anders Tornblad