2011-06-02 56 views
3

我正在使用kso​​ap2调用web.net服务。除了当我通过参数时,通话工作正常。传递的参数总是被网络服务接收为空值。我不知道问题是什么,我希望有人能帮助。谢谢,将参数从android传递到.net web服务

我的代码如下,请帮我

package com.android.countrycode; 

import org.ksoap2.SoapEnvelope; 
import org.ksoap2.serialization.PropertyInfo; 
import org.ksoap2.serialization.SoapObject; 
import org.ksoap2.serialization.SoapSerializationEnvelope; 
import org.ksoap2.transport.HttpTransportSE; 
import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 
import android.widget.TextView; 

public class CountryActivity extends Activity { 
    /** Called when the activity is first created. */ 

    private static final String SOAP_ACTION = "http://www.webserviceX.NET/GetCountryByCountryCode"; 
    private static final String OPERATION_NAME = "GetCountryByCountryCode"; 
    private static final String WSDL_TARGET_NAMESPACE = "http://www.webserviceX.NET/"; 
    private static final String SOAP_ADDRESS = "http://www.webservicex.net/country.asmx"; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     TextView textView = new TextView(this); 
     setContentView(textView); 
     SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE,OPERATION_NAME); 
     //PropertyInfo pi = new PropertyInfo(); 
     //pi.setName("CountryCode"); 
     //pi.setValue("AS"); 
     //request.addProperty(pi); 
     //request.addAttribute("CountryName", "Portugal"); 
     //request.setProperty(1, "Portugal"); 
     request.addProperty("CountryCode","AS"); 
     SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
     envelope.dotNet = true; 
     envelope.setOutputSoapObject(request); 
     HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS); 
     try 
     { 

     httpTransport.call(SOAP_ACTION, envelope); 
     Object response = envelope.getResponse(); 
     textView.setText(response.toString()); 
     System.out.println(response.toString()); 
     } 
     catch (Exception exception) 
     { 
     String exceptionStr=exception.toString(); 
     textView.setText(exceptionStr); 
     System.out.println(exceptionStr); 
     Log.i("TAG",exceptionStr); 
     } 

    } 
} 
+0

我看到这也与发现webservice是一种影响。使用返回复杂对象的KSOAP2调用webservice需要SoapRpcMethod。当这个设置,我发现我的参数始终为空。如果我把它从web服务中取出,我会得到正确的参数,但是然后KSOAP2无法处理复杂的对象。帮助将不胜感激 - 谢谢 – cbuck12000 2011-06-06 20:21:51

回答

0

可能是试试这个...

String parameter="as"; 

然后

request.addProperty("CountryCode",parameter); 
相关问题