【发布时间】:2014-09-12 19:29:41
【问题描述】:
我也是 Xamarin 和 C# 的新手。我尝试使用一些信息向我的服务器发出 Http 请求。 一般来说,android Native a 使用 AsyncTask 和 HttpClient 。并构建一个 json 对象或名称值对,并将其加密以将信息与请求集成。 但是当我尝试对 xamarin 做同样的事情时,我遇到了一些问题。
- 如果我尝试导入命名空间
使用 System.Net.Http.HttpClient 比我的 xamarin 没有这个命名空间
- 由于上述问题,我尝试使用 HttpWebRequest。但是当我将它与 asyc 一起使用并等待时,我没有收到来自服务器的任何响应。
我是 xamarin 的新手,所以我不确定 async 和 await 关键字。 我读了很多文章,但没有运气:(
点击按钮我调用下面的方法
public async Task<int> ValidateUser(){
try{
var request = HttpWebRequest.Create (URL);
request.Method = "GET/POST";
String postString = String.Format ("AAA ={0}&BBB={1}&CCC={2}", "111",
"222","333");
byte[] postByte = Encoding.UTF8.GetBytes (postString);
Stream st = request.GetRequestStream ();
//I am reaching here
Console.WriteLine("Check for Validity");
request.ContentLength = postByte.Length;
st.Write (postByte, 0, postByte.Length);
st.Close ();
Task<Stream> contentTask = request.GetRequestStreamAsync();
Stream response = await contentTask;
String str = response.ToString();
// this is not getting printed in Console
Console.WriteLine("=====>>"+str);
}
catch (WebException exception) {
string responseText;
using (var reader = new StreamReader(exception.Response.GetResponseStream())) {
responseText = reader.ReadToEnd ();
Console.WriteLine ("====Dude Error"+responseText);
}
}catch(Exception e){
}
return 1;
}
任何帮助将不胜感激
【问题讨论】:
-
使用 HttpWebRequest 是个坏主意,相反,最好关注为什么没有 System.Net.Http.* 命名空间。最可能的原因是,您没有添加 System.Net.Http 作为对项目的引用。
-
我尝试添加,但不是博士...请告诉我它是否不存在,如何集成到 xamarin
标签: android xamarin xamarin.android