[英]Calling web service api from android but parameter missing error
我正在尝试从android应用程序调用网络服务api,代码如下所示:
ArrayList<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(2);
nameValuePair.add(new BasicNameValuePair("check", "chk"));
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost post = new HttpPost(HTTP_CHECK);
post.setEntity(new UrlEncodedFormEntity(nameValuePair));
httpClient.execute(post);
HttpResponse httpres = httpClient.execute(post);
这是我在asp.net上的Web服务API
[WebMethod]
public string HelloWorld2(String check)
{
return "SuccessCheck";
}
主机服务器是Godaddy。 上述方法以前有效。 但是现在它在应用程序上给出了错误-
System.InvalidOperationException:缺少参数:check。
缺少该参数的说法。 该参数作为namevaluepair传递。 我不知道是什么问题? 但是,它可以在localhost上完美运行。
没有任何参数的服务方法在服务器以及本地主机上都可以正常工作。 现在,当我如下更改android代码时
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost post = new HttpPost(HTTP_CHECK + "?check=chk");
httpClient.execute(post);
HttpResponse httpres = httpClient.execute(post);
现在,它既可以在服务器上运行,也可以在主机上运行。 当我通过上面给出的URL传递参数时,没有使用名称/值对。
第一种情况的问题是什么,为什么它突然改变了? 请帮忙。
在第一种情况下,您不会在任何地方使用nameValuePair
。
添加此位:
post.setEntity(new UrlEncodedFormEntity(nameValuePair));
在调用httpClient.execute(post);
之前httpClient.execute(post);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.