android-无法访问soap web服务

android-无法访问soap web服务,android,web,service,Android,Web,Service,我正在尝试创建一个能够访问Web服务的android应用程序。 我使用了本网站提供的示例:(第1部分)。 但是它根本不起作用,它一直显示“1 USD=LKR”,而不是“1 USD=128.95 LKR”。然而,这段代码使用线程(因为经过大量研究,我发现网络请求需要在Android 3.0之后的后台线程上完成)。 我也尝试创建一个AsyncTask,但它也不起作用。 下面是我的代码示例: RetrieveFeedTask(我的异步任务): 公共类RetrieveFeedTask扩展了AsyncT

我正在尝试创建一个能够访问Web服务的android应用程序。
我使用了本网站提供的示例:(第1部分)。
但是它根本不起作用,它一直显示“1 USD=LKR”,而不是“1 USD=128.95 LKR”。然而,这段代码使用线程(因为经过大量研究,我发现网络请求需要在Android 3.0之后的后台线程上完成)。

我也尝试创建一个AsyncTask,但它也不起作用。
下面是我的代码示例:
RetrieveFeedTask(我的异步任务):

公共类RetrieveFeedTask扩展了AsyncTask{
私人例外;
私有静态字符串webResponse=“”;
受保护的void doInBackground(字符串名称空间、字符串方法\u名称、字符串fromCurrency、字符串toCurrency、字符串SOAP\u操作、字符串URL){
试一试{
SoapObject请求=新的SoapObject(名称空间、方法名称);
PropertyInfo fromProp=新的PropertyInfo();
fromProp.setName(“FromCurrency”);
fromProp.setValue(fromCurrency);
fromProp.setType(String.class);
request.addProperty(fromProp);
PropertyInfo toProp=新的PropertyInfo();
toProp.setName(“ToCurrency”);
toProp.设置值(toCurrency);
toProp.setType(String.class);
请求。添加属性(toProp);
SoapSerializationEnvelope=新的SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet=true;
envelope.setOutputSoapObject(请求);
HttpTransportSE androidHttpTransport=新的HttpTransportSE(URL);
调用(SOAP_操作,信封);
SoapPrimitive响应=(SoapPrimitive)信封.getResponse();
setWebResponse(response.toString());
}捕获(例外e){
这个异常=e;
回来
}
}
受保护的void onPostExecute(void提要){
}
受保护的Void doInBackground(Void…arg0){
//TODO自动生成的方法存根
返回null;
}
受保护的Void doInBackground(字符串…参数){
//TODO自动生成的方法存根
返回null;
}
公共静态字符串getWebResponse(){
返回webResponse;
}
public void setWebResponse(字符串webResponse){
this.webResponse=webResponse;
}}
尽管有教程,你知道为什么这两种方法都不起作用吗?
提前感谢。

您可以使用ksoap库访问soap web服务。请参阅以下url

谢谢,但我已经做完了。这就像我无法从Web服务获得任何答案(尽管有教程),但它可能来自我的代码。请尝试使用.addProperty(“property”,value)将属性直接添加到请求对象。不过看起来是对的。我不记得有多随便,但你可以打开调试,也可以试试。谢谢,但它仍然不起作用。你是否将transport debug设置为true?转储是什么?在一个异步任务中确实有三个
doInBackground()
方法吗
doInBackground()
只接受一个参数。在您的案例字符串中。。。
public class RetrieveFeedTask extends AsyncTask <String, Void, Void>{
private Exception exception;
private static String webResponse = "";
protected void doInBackground(String NAMESPACE, String METHOD_NAME, String fromCurrency, String toCurrency, String SOAP_ACTION, String URL) {
    try {
         SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 
         PropertyInfo fromProp =new PropertyInfo();
         fromProp.setName("FromCurrency");
         fromProp.setValue(fromCurrency);
         fromProp.setType(String.class);
         request.addProperty(fromProp);
         PropertyInfo toProp =new PropertyInfo();
         toProp.setName("ToCurrency");
         toProp.setValue(toCurrency);
         toProp.setType(String.class);
         request.addProperty(toProp);
         SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
         envelope.dotNet = true;
         envelope.setOutputSoapObject(request);
         HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
         androidHttpTransport.call(SOAP_ACTION, envelope);
         SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
         setWebResponse(response.toString());
         } catch (Exception e) {
        this.exception = e;
        return;
    }
}
    protected void onPostExecute (Void feed) {
    }
    protected Void doInBackground(Void... arg0) {
    // TODO Auto-generated method stub
    return null;
}
    protected Void doInBackground(String... params) {
    // TODO Auto-generated method stub
    return null;
}
    public static String getWebResponse() {
    return webResponse;
}
    public void setWebResponse(String webResponse) {
    this.webResponse = webResponse;
}}