Fügen Sie einen benutzerdefinierten Header in HttpWebRequest hinzu


Antworten:


169

Sie verwenden die HeadersEigenschaft mit einem Zeichenfolgenindex:

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

Laut MSDN ist dies seit:

  • Universelle Windows-Plattform 4.5
  • .NET Framework 1.1
  • Tragbare Klassenbibliothek
  • 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


auch die Zeichenfolge kann wie folgt durch enum HttpRequestHeader ersetzt werden httpWebRequest.Headers [HttpRequestHeader.Authorization] = "value";
— OXXY

1
Das würde die ursprüngliche Frage @OXXY nicht beantworten. Die HttpRequestHeaderAufzählung gilt für Standardheader - nicht für benutzerdefinierte.
— Anders Tornblad

In der API zum Hochladen von Google Drive-Dateien befindet sich eine Eigenschaft namens name, die per Post-Methode gesendet werden sollte. Also, request.Headers ["name"] = "hello.txt"; Also, es reflektiert nicht. Hilfe Was sollen wir für benutzerdefinierte verwenden?
— Susarla Nikhilesh

POST-Daten werden nicht über Header gesendet, daher ist dies nicht der richtige Ort für Ihre Frage. Bitte posten Sie eine neue Frage.
— Anders Tornblad

16

Eine einfache Methode zum Erstellen des Dienstes, Hinzufügen von Headern und Lesen der JSON-Antwort.

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
Authorizationist kein benutzerdefinierter Header und sollte kontrollierter behandelt werden.
— Anders Tornblad

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.