繁体   English   中英

从Android调用Web Service API但参数丢失错误

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM