我一直在使用 ksoap 库来使用 .net Web 服务。我收到这种错误
“预期:START_TAG { http://schemas.xmlsoap.org/soap/envelope/ }信封(位置:START_TAG @1:7 in java.io.InputStreamReader@40d0c7d8)”
我到处搜索,但找不到任何好的帮助。
这是我尝试使用 Web 服务的代码。
public class WebInvoke {
private static final String NAMESPACE = "http://tempuri.org/" ;
private static final String METHOD_NAME = "login";
private static final String SOAP_ACTION = NAMESPACE + METHOD_NAME;
private static final String URL = "http://10.0.2.2/Service1.asmx";
private final SoapSerializationEnvelope envelope;
public WebInvoke()
{
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
PropertyInfo quotesProperty = new PropertyInfo();
quotesProperty.setName("UserName");
quotesProperty.setValue("admin");
quotesProperty.setType(String.class);
request.addProperty(quotesProperty);
quotesProperty = new PropertyInfo();
quotesProperty.setName("Password");
quotesProperty.setValue("a");
quotesProperty.setType(String.class);
request.addProperty(quotesProperty);
Log.e("Request Assign", request.toString());
envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
Log.e("Envelope Assign", envelope.toString());
}
public String Fetch()
{
String result = "";
HttpTransportSE httpRequest = new HttpTransportSE(URL);
try
{
envelope.xsd = SoapSerializationEnvelope.XSD;
envelope.enc = SoapSerializationEnvelope.ENC;
httpRequest.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
Log.e("httpRequest.call", "httpRequest.call");
httpRequest.call(SOAP_ACTION, envelope);
SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
result = response.toString();
}
catch(Exception e)
{
//e.printStackTrace();
Log.e("httpRequest.call Exception", e.getMessage());
}
return result;
}
}