大佬教程收集整理的这篇文章主要介绍了windows-phone-8 – ‘System.Net.HttpWebRequest’不包含’GetResponse’的定义,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
static String httpGet(String url) { httpWebrequest req = Webrequest.Create(url) as httpWebrequest; String result = null; using (httpWebResponse resp = req.GetResponse() as httpWebResponsE) { StreamReader reader = new StreamReader(resp.GetResponseStream()); result = reader.ReadToEnd(); } return result; }
但我得到如下构建错误
我不知道为什么会发生这种情况,相同的代码在同一环境中与Windows_application一起工作正常.
更新:我也尝试过使用Web客户端方法
WebClient client = new WebClient(); client.Headers.Add("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"); Stream data = client.openRead("http://192.168.10.73:8087/cisms/mobilews/login/userNamecheck?userName=supervisor"); StreamReader reader = new StreamReader(data); String s = reader.ReadToEnd(); data.Close(); reader.Close();
得到另一组错误……
更新2:
我根据@Gavin的回答更改了代码如下.
static async void httpGet(String url) { Uri uri = new Uri(url); String result = null; httpWebrequest request = (httpWebrequest)Webrequest.Create(uri); request.Method = "GET"; using (var response = (httpWebResponsE)(await Task<WebResponse>.Factory.FromAsync(request.beginGetResponse,request.EndGetResponse,null))) { StreamReader reader = new StreamReader(response.GetResponseStream()); result = reader.ReadToEnd(); } }
但是控件从以下行返回到调用事件
using (var response = (httpWebResponsE)(await Task<WebResponse>.Factory.FromAsync(request.beginGetResponse,null)))
任何有关这方面的帮助将不胜感激.
答案:
我更改了代码如下,它现在正在工作..
public async Task<String> httprequest(String url) { Uri uri = new Uri(url); httpWebrequest request = (httpWebrequest)Webrequest.Create(uri); String received; using (var response = (httpWebResponsE)(await Task<WebResponse>.Factory.FromAsync(request.beginGetResponse,null))) { using (var responseStream = response.GetResponseStream()) { using (var sr = new StreamReader(responseStream)) { received = await sr.ReadToEndAsync(); } } } return received; }
主叫部分如下……
private async void Button_Click(object sender,RoutedEventArgs E) { String uriString = "http://192.168.10.73:8087/cisms/mobilews/login/userNamecheck?userName=supervisor"; var response = await httprequest(uriString); }
更新3:
static String httpPost(String url,String[] paramname,String[] paramVal) { httpWebrequest req = Webrequest.Create(new Uri(url)) as httpWebrequest; req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; // Build a String with all the params,properly encoded. // We assume that the arrays paramname and paramVal are // of equal length: StringBuilder paramz = new StringBuilder(); for (int i = 0; i < paramname.Length; i++) { paramz.Append(paramname[i]); paramz.Append("="); paramz.Append(httpUtility.UrlEncode(paramVal[i])); paramz.Append("&"); } // Encode the parameters as form data: byte[] formData = UTF8Encoding.UTF8.GetBytes(paramz.ToString()); req.ContentLength = formData.Length; // Send the request: using (Stream post = req.GetrequestStream()) { post.Write(formData,formData.Length); } // Pick up the response: String result = null; using (httpWebResponse resp = req.GetResponse() as httpWebResponsE) { StreamReader reader = new StreamReader(resp.GetResponseStream()); result = reader.ReadToEnd(); } return result; }
此方法在Windows Phone 8应用程序中有两个构建错误
谢谢
塞巴斯蒂安
您可以根据需要调整以下代码变体:
Webrequest request = Webrequest.Create(url); return Task.Factory.FromAsync(request.beginGetResponse,result => { httpWebResponse response = (httpWebResponsE)request.EndGetResponse(result); ... }
要么
httpWebrequest request = (httpWebrequest)Webrequest.Create(uri); request.Method = "GET"; using (var response = (httpWebResponsE)(await Task<WebResponse>.Factory.FromAsync(request.beginGetResponse,null))) { ... }
以上是大佬教程为你收集整理的windows-phone-8 – ‘System.Net.HttpWebRequest’不包含’GetResponse’的定义全部内容,希望文章能够帮你解决windows-phone-8 – ‘System.Net.HttpWebRequest’不包含’GetResponse’的定义所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。