Fügen Sie einen benutzerdefinierten Header in HttpWebRequest hinzu

88

Ich muss dem HttpWebRequestObjekt einige benutzerdefinierte Header hinzufügen . Wie kann ich dem HttpWebRequestObjekt in Windows Phone 7 einen benutzerdefinierten Header hinzufügen?

Nelson T Joseph
quelle

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

Anders Tornblad
quelle
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());
        }
    }
Hai
quelle
2
Authorizationist kein benutzerdefinierter Header und sollte kontrollierter behandelt werden.
Anders Tornblad