c#从Android读取信息
本文关键字:信息 读取 Android | 更新日期: 2023-09-27 18:05:38
我试图做一个简单的登录功能。登录将由应用程序进行,并将信息传递给WebService(在c#中)。
我的应用程序通过HttpPost发送信息到服务器。但是我无法在Web服务端获取和返回此信息
发出请求(android端),我使用:
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("username", user.getText().toString()));
params.add(new BasicNameValuePair("password", pass.getText().toString()));
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(new UrlEncodedFormEntity(params));
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
在WebService端,我试图使用Serialize方法,但它不起作用
p。:为了测试,我试着在另一个WebService上运行(这个是用PHP构建的),并且工作得很好。
有什么好主意吗?
[编辑]
这是web服务端:
[HttpPost]
public string LogarAplicativo()
{
//Request.InputStream.Seek(0, SeekOrigin.Begin);
string jsonData = new StreamReader(Request.InputStream).ReadToEnd();
dynamic data = JObject.Parse(jsonData);
//DB validation's
var json = "";
var serializer = new JavaScriptSerializer();
json = serializer.Serialize(new { success = "0", message = "Test message!" });
return json;
}
当您使用UrlEncodedFormEntity
发送信息时,它将看起来像HTTP表单的内容:
param1=value1¶m2=value2
这不是JSON数据,所以你的序列化代码不能工作,因为它是一个完全不同的结构。解析表单数据需要不同的方法,如HttpUtility.ParseQueryString
。