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;
}

c#从Android读取信息

当您使用UrlEncodedFormEntity发送信息时,它将看起来像HTTP表单的内容:

param1=value1&param2=value2

这不是JSON数据,所以你的序列化代码不能工作,因为它是一个完全不同的结构。解析表单数据需要不同的方法,如HttpUtility.ParseQueryString