Add custom header in HttpWebRequest

C#Windows Phone-7HeaderHttp HeadersHttpwebrequest

C# Problem Overview


I need to add some custom headers to the HttpWebRequest object. How can I add Custom Header to HttpWebRequest object in Windows Phone 7.

C# Solutions


Solution 1 - C#

You use the Headers property with a string index:

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

According to MSDN, this has been available since:

  • Universal Windows Platform 4.5
  • .NET Framework 1.1
  • Portable Class Library
  • 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

Solution 2 - C#

A simple method of creating the service, adding headers and reading the JSON response,

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());
        }
    }

Solution 3 - C#

You can add values to the HttpWebRequest.Headers collection.

According to MSDN, it should be supported in windows phone: http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.headers%28v=vs.95%29.aspx

Solution 4 - C#

First of all you need to visit the web page from where you are trying to fetch response. Right Click>Inspect>Network>(Refresh it)> Under Name Click on the first Link>Now you can see the Request Headers and Response Headers

From there you you can see the Request Headers and add them accordingly Like an example:

HttpWebRequest HttpWReq = (HttpWebRequest)WebRequest.Create(url);

        HttpWReq.Method = "GET";
        HttpWReq.Headers.Add("accept-encoding", "gzip, deflate, br");
        HttpWReq.Headers.Add("cache-control", "max-age=0");
         HttpWReq.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36";
        HttpWReq.Headers.Add("accept-encoding", "gzip, deflate, br");
        HttpWReq.Headers.Add("accept-language", "en-US,en;q=0.9");
        HttpWReq.Headers.Add("cache-control", "max-age=0");
        HttpWReq.Headers.Add("upgrade-insecure-requests", "1");

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionNelson T JosephView Question on Stackoverflow
Solution 1 - C#Anders Marzi TornbladView Answer on Stackoverflow
Solution 2 - C#SharKView Answer on Stackoverflow
Solution 3 - C#SvarogView Answer on Stackoverflow
Solution 4 - C#Hanan ShoukatView Answer on Stackoverflow