我见过讨论这个的话题,但似乎没有人发布解决方案。目前,我正在测试传递参数到我的.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 +“字符串消息”
结束功能
我将不胜感激。
答案 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://