我正在使用soap访问下面显示的代码中的Web服务并收到以下错误,我需要帮助理解:
SoapFault - faultcode:'soap:Server' faultstring:'System.Web.Services.Protocols.SoapException:服务器无法 处理请求。 ---> System.Data.SqlClient.SqlException:过程或 函数'getWCity'需要参数'@CountryName',而不是 提供。 在WebServicex.GlobalWeather.GetCitiesByCountry(String CountryName) ---内部异常堆栈跟踪结束---'faultactor:'null'详细信息:org.kxml2.kdom.Node@bf51d7c
public String Test()
{
String SOAP_ACTION = "http://www.webserviceX.NET/GetCitiesByCountry";
String METHOD_NAME = "GetCitiesByCountry";
String NAMESPACE = "http://www.webserviceX.NET/";
String URL = "http://www.webservicex.com/globalweather.asmx?WSDL";
SOAP_ACTION = NAMESPACE + METHOD_NAME;
String result="invalid";
try
{
SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);
Request.addProperty("CountryName", "India");
SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
soapEnvelope.dotNet = true;
soapEnvelope.setOutputSoapObject(Request);
HttpTransportSE transport = new HttpTransportSE(URL);
transport.call(SOAP_ACTION, soapEnvelope);
SoapPrimitive resultString;
resultString = (SoapPrimitive) soapEnvelope.getResponse();
result = resultString .toString() ;
return result ;
}
catch (Exception e)
{
e.printStackTrace();
}
return result;
}
答案 0 :(得分:2)
SoapObject(NAMESPACE,METHOD_NAME);它用作命名空间:
但它应该是
你可以改为:
String METHOD_NAME = "GetCitiesByCountry";
String NAMESPACE = "http://www.webserviceX.NET";
SOAP_ACTION = NAMESPACE + "/" + METHOD_NAME;