我有一段在.NET(4.0)中完美运行的代码
码#
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,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();
我似乎无法想出要在Win Store应用程序中写什么
到目前为止,我必须使用哪个类(或可能不是)
HttpClient httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Add("Host","www.indianrail.gov.in");
但是其他值如何,我们可以在其中添加一些数据,其中一些需要直接添加到集合(DefaultHeaders)…
是否有相关的使用和描述的文档
在这方面的任何帮助将是伟大的:)
解决方法
任何方式都要感谢社区的帮助….一些阅读让我找到了解决方案
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();
这将返回我想要的结果
谢谢你的方式