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