Using the HttpClient Class with WinRT

I have a piece of code that works fine in .NET (4.0)

Code #

string URI = "http://www.indianrail.gov.in/cgi_bin/inet_pnrstat_cgi.cgi"; string Parameters = Uri.EscapeUriString("lccp_pnrno1=8561180607&submitpnr=Get Status"); System.Net.HttpWebRequest req = (HttpWebRequest)System.Net.WebRequest.Create(URI); //HTTP POST Headers req.ContentType = "application/x-www-form-urlencoded"; req.Host = "www.indianrail.gov.in"; //You can use your own user-agent. req.UserAgent = "Mozilla/5.0 (compatible; MSIE 7.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0) DELL;Venue Pro"; req.Headers.Add(HttpRequestHeader.AcceptLanguage, "en-us,en;q=0.5"); req.Headers.Add(HttpRequestHeader.AcceptCharset, "ISO-8859-1,utf-8;q=0.7,*;q=0.7"); req.KeepAlive = true; req.Referer = "http://www.indianrail.gov.in/pnr_stat.html"; req.Accept = "text/plain"; req.Method = "POST"; //Byte size calculation before sending request. byte[] bytes = System.Text.Encoding.ASCII.GetBytes(Parameters); req.ContentLength = bytes.Length; System.IO.Stream os = req.GetRequestStream(); os.Write(bytes, 0, bytes.Length); os.Close(); System.Net.WebResponse resp = req.GetResponse(); var request_status = ((HttpWebResponse)resp).StatusDescription; if (resp == null) return; System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream()); Console.WriteLine(sr.ReadToEnd()); Console.ReadLine(); 

I just can't figure out what to write in Win Store apps

So far I got to which class I should use (or maybe not)

 HttpClient httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Add("Host", "www.indianrail.gov.in"); 

But what about the other values, there is some heading into which we can add some data, some of them should be added to the collection (DefaultHeaders) directly ...

Is there any documentation to use and descriptions for the same

Any help in this direction would be great :)

+6
source share
1 answer

Any ways thanks for helping the community ... Some reading made me figure this out

  string URI = "http://www.indianrail.gov.in/cgi_bin/inet_pnrstat_cgi.cgi"; string Parameters = Uri.EscapeUriString("lccp_pnrno1=8561180604&submitpnr=Get Status"); HttpClient client = new HttpClient(); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post,URI); request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("text/plain")); request.Headers.AcceptCharset.Add(new StringWithQualityHeaderValue("utf-8",0.7)); request.Headers.AcceptLanguage.Add(new StringWithQualityHeaderValue("en-us",0.5)); request.Content = new StreamContent(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(Parameters))); request.Content.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); request.Headers.Host = "www.indianrail.gov.in"; request.Headers.UserAgent.Add(new ProductInfoHeaderValue("Mozilla", "5.0")); request.Headers.Referrer = new Uri("http://www.indianrail.gov.in/pnr_stat.html"); var result = await client.SendAsync(request); var content = await result.Content.ReadAsStringAsync(); 

This returns exactly the result that I need

Thanks ne ways

+10
source

All Articles