带有Ksoap2的Java Web服务成功出错

带有Ksoap2的Java Web服务成功出错,java,android,ksoap2,Java,Android,Ksoap2,帮帮我,我正在做大约5个小时的工作它不工作 不幸的是,每件事都会有这样的反应: output: anyType{RequestResult=anyType{Success=false; Message=Object reference not set to an instance of an object.; }; } 我的班级在这里: public class WebServiceCallerImp implements WebServiceCaller{ static final St

帮帮我,我正在做大约5个小时的工作它不工作

不幸的是,每件事都会有这样的反应:

output: anyType{RequestResult=anyType{Success=false; Message=Object reference not set to an instance of an object.; }; }
我的班级在这里:

public class WebServiceCallerImp implements  WebServiceCaller{

static final String NAMESPACE="http://tempuri.org/";
static final String SERVICE_URL="http://93.94.199.145/IPhoneIPad/Service.asmx";
static String METHOD="GetForexStocksandIndexesInfo";
static String SOAP_ACTION = "http://tempuri.org/GetForexStocksandIndexesInfo";

@Override
public String GetForex(GetForexInput input) {

SoapObject request = new SoapObject(NAMESPACE,METHOD);
request.addProperty("IsIPAD", "false");
request.addProperty("DeviceID", "test");
request.addProperty("DeviceType", "ipad");
request.addProperty("RequestKey", "UmVxdWVzdElzVmFsaWQxNjowNToyMDEyIDExOjU0%%");
request.addProperty("Period", "Month");


SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet=true;
envelope.setOutputSoapObject(request);


HttpTransportSE androidHttpTransport = new HttpTransportSE(SERVICE_URL);
androidHttpTransport.debug=true;

try {
    androidHttpTransport.call(SOAP_ACTION, envelope);
    SoapObject  response = (SoapObject) envelope.getResponse();
    System.out.println("output: "+response.toString());
    return response.toString();
}
    catch(Exception e){
        System.out.println("@@@@: "+ e.toString());

    }


return "null";
}}
我检查了wsdl中的metots和参数:

 http: //93.94.199.145/IPhoneIPad/Service.asmx?WSDL
及其方法:

http: //93.94.199.145/IPhoneIPad/Service.asmx?op=GetForexStocksandIndexesInfo

我的错误在哪里?

参数是结构请求{isipad,deviceid…}(请参见SoapUI下)。 所以参数是这样做的,并将implicitTypes设置为true以防止类型属性:

SoapObject request = new SoapObject(NAMESPACE,METHOD);
SoapObject req_params = new SoapObject(NAMESPACE, "request");
req_params.addProperty("IsIPAD", "false");
req_params.addProperty("DeviceID", "test");
req_params.addProperty("DeviceType", "ipad");
req_params.addProperty("RequestKey", "UmVxdWVzdElzVmFsaWQxNjowNToyMDEyIDExOjU0%%");
req_params.addProperty("Period", "Month");
request.addSoapObject(req_params);

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet=true;
envelope.implicitTypes = true;
envelope.setOutputSoapObject(request);
不要问我为什么返回“请求无效”。对于您提供的参数值,SoapUI下也有相同的响应。我认为“DeviceId”参数无效,但确实不知道这一点(WS;) 希望能有帮助
Marcin

参数是结构请求{isipad,deviceid…}(请参见SoapUI下)。 所以参数是这样做的,并将implicitTypes设置为true以防止类型属性:

SoapObject request = new SoapObject(NAMESPACE,METHOD);
SoapObject req_params = new SoapObject(NAMESPACE, "request");
req_params.addProperty("IsIPAD", "false");
req_params.addProperty("DeviceID", "test");
req_params.addProperty("DeviceType", "ipad");
req_params.addProperty("RequestKey", "UmVxdWVzdElzVmFsaWQxNjowNToyMDEyIDExOjU0%%");
req_params.addProperty("Period", "Month");
request.addSoapObject(req_params);

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet=true;
envelope.implicitTypes = true;
envelope.setOutputSoapObject(request);
不要问我为什么返回“请求无效”。对于您提供的参数值,SoapUI下也有相同的响应。我认为“DeviceId”参数无效,但确实不知道这一点(WS;) 希望能有帮助 马辛