我是 android 新手,对肥皂网络服务调用非常陌生。我正在尝试使用 ksoap2 库调用基于肥皂的 Web 服务,但不断收到错误消息
java.io.IOException:HTTP 请求失败,HTTP 状态:405
但我无法理解为什么会这样。我在互联网上搜索过,找不到任何解决我的问题的方法。
这些是我正在使用的字段:
private static final String METHOD_NAME = "Authenticate";
private static final String SOAP_ACTION = "http://tempuri.org/IService1/Authenticate";
private static final String URL = "http://www.w3schools.com/webservices/tempconvert.asmx";
private static final String NAMESPACE = "http://tempuri.org/";
这是 wsdl 网址: http ://www.w3schools.com/webservices/tempconvert.asmx?WSDL
这应该是请求格式: http ://www.w3schools.com/webservices/tempconvert.asmx?WSDL
我已经使用 Web 服务工作室测试了这项服务,并得到了以下请求并且工作正常。
<?xml version="1.0" encoding="utf-16"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><Authenticate xmlns="http://tempuri.org/">
<UserName>test</UserName>
<Password>test</Password>
</Authenticate></soap:Body></soap:Envelope>
我正在尝试使用以下代码调用此服务
request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("UserName","test");
request.addProperty("Password","test");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10);
envelope.setOutputSoapObject(request);
HttpTransportSE ht = new HttpTransportSE(URL);
ht.call(SOAP_ACTION, envelope);
因此,请帮助我从该服务中获得响应。