使用KSOAP2(Android)发送参数时出错

时间:2011-04-21 07:37:30

标签: php android web-services ksoap2

我对使用KSOAP2感到非常无聊:我正在寻找解决方案1天而且找不到任何东西......

我有一个简单的PHP Web服务,我从教程中的示例中获取:GetSumOfTwoInts。它需要两个Int in参数并返回它们的总和。

我可以用PHP和Java调用这个web服务,它运行良好,但是当我用KSAOP2调用它时,我总是有同样的错误:

SoapFault - faultcode: 'SOAP-ENV:Server' faultstring: 'Procedure 'GetSumOfTwoInts' not present' faultactor: 'null' detail: null

在这里,我的代码:

public void onCreate( Bundle icicle )
{
    super.onCreate(icicle);
    TextView tv = new TextView(this);
    setContentView(tv);
    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);    

    PropertyInfo pi = new PropertyInfo();
    pi.setName("Operand1");
    pi.setValue(40);
    pi.setType(int.class);
    request.addProperty(pi);

    PropertyInfo pi2 = new PropertyInfo();
    pi2.setName("Operand2");
    pi2.setValue(6);
    pi2.setType(int.class);
    request.addProperty(pi2);

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

    envelope.setOutputSoapObject(request);

    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

    try
    {
        androidHttpTransport.call(SOAP_ACTION, envelope);

        String result = envelope.bodyIn.toString(); 

        Toast.makeText(this, result, 10000).show();
        Log.v("TEST", result);
    }
    catch(Exception e)
    {
        e.printStackTrace();
        Log.v("TEST1", e.toString());
    }


}

此行发生错误:“androidHttpTransport.call(SOAP_ACTION,envelope);”

这很奇怪,因为我做了其他的尝试,使用不接受参数的web服务并且它运行良好....当我需要参数时它不起作用....

我需要你的帮助! :)

1 个答案:

答案 0 :(得分:0)

pi.setType(int.class);

尝试使用

pi.setType(Integer.class);