[英]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.