Web服务使用soap方法从应用程序接收空参数

时间:2010-06-15 15:12:56

标签: .net android web-services ksoap

我见过讨论这个的话题,但似乎没有人发布解决方案。目前,我正在测试传递参数到我的.Net Web服务。当参数到达Web服务时,它会添加一个额外的字符串,然后将其返回给我的应用程序;但我正在返回的是字符串消息,而不是我传递的参数。我的网络服务或肥皂方法有问题吗?

皂:

  

SoapObject request = new SoapObject(NAMESPACE,METHOD_NAME);

    request.addProperty("A", "workowr");


    SoapSerializationEnvelope envelope =
        new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.dotNet = true;
        envelope.setOutputSoapObject(request);
        HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);    
        try {
            androidHttpTransport.call(SOAP_ACTION, envelope);
            SoapPrimitive result = (SoapPrimitive) envelope.getResponse();
            //SoapObject result = (SoapObject)envelope.getResponse();       
            String resultData = result.toString();
            testTV.setText(resultData);

        }
        catch(Exception e)
        {
            testTV.setText(e.getMessage());
        }

这是我简单的.Net网络服务:

  

公共函数getRegInfo(ByVal A As String)As String

     

返回A +“字符串消息”

     

结束功能

我将不胜感激。

5 个答案:

答案 0 :(得分:5)

对我来说有用的是改变我的.Net webservice和我的应用程序中的命名空间URL。

例如,我有:

http://www.example.com/webservices/

我改为:

“example.com/webservices /”

它完美无缺。

试一试。

答案 1 :(得分:1)

是的 - 当通过KSoap连接时,在webservice命名空间中有一个冒号(:)似乎有些问题。常规的非参数调用工作正常,但由于某种原因,参数似乎是空的。

答案 2 :(得分:1)

实际上没有必要在最后加上额外的“/”。

在调试并尝试在网上写的任何内容之后,我发现传递参数时最重要的是在WebService声明和ksoap2中使用相同的语句。

所以在两个地方使用“/”或从两个地方删除它。 “http://”也可以使用。

答案 3 :(得分:1)

添加参数的完美代码  这个工作尝试这个

     "legs" : [
        {
           "distance" : {
              "text" : "542 km",
              "value" : 542389
           },

答案 4 :(得分:0)

您必须复制并通过名称空间和soap操作,它们与WSDL xml文件中显示的完全相同。

我有同样的问题,当我从(名称空间和肥皂动作)中删除http:// 问题解决了。(在WSDL中他们没有http://) 实际上我试图访问本地Web服务(本地服务器中安装的服务)

但是我有另一个访问外部.NET Web服务的应用程序 (中央银行网络服务进行费率交换) WSDL NameSpace和SoapAction包含http:// 我的应用程序完美无需删除http://