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.