Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从android应用程序调用Web服务_Android_Ksoap2_Android Ksoap2 - Fatal编程技术网

从android应用程序调用Web服务

从android应用程序调用Web服务,android,ksoap2,android-ksoap2,Android,Ksoap2,Android Ksoap2,我需要从android应用程序调用web服务。我有wsdl文件 对于用java创建的web服务,我没有 相同的 在java中,我使用“Generate Client”选项从 一个wsdl,然后使用Axis.jar通过我的java应用程序调用web服务。 当我单击“生成客户端”选项时,将生成文件 还有一些编译错误。但我在做同样的事情 在java应用程序中,生成的文件没有任何编译 错误。 请告知从android上执行相同操作的正确方法 预期的 Regads,在android中,您可以使用ksoap库

我需要从android应用程序调用web服务。我有wsdl文件 对于用java创建的web服务,我没有 相同的 在java中,我使用“Generate Client”选项从 一个wsdl,然后使用Axis.jar通过我的java应用程序调用web服务。 当我单击“生成客户端”选项时,将生成文件 还有一些编译错误。但我在做同样的事情 在java应用程序中,生成的文件没有任何编译 错误。 请告知从android上执行相同操作的正确方法 预期的
Regads,

在android中,您可以使用ksoap库并调用所需的Web服务。 使用构建路径包括ksoap库,并使用以下代码调用webservice。 在此路径中找到ksoap库

见有关问题。
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.MarshalBase64;
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;

public class SVCWebServiceActivity extends Activity {
    /** Called when the activity is first created. */
    private static final String SOAP_ACTION = "http://tempuri.org/GetByteArray";
    private static final String METHOD_NAME = "GetByteArray";
    private static final String NAMESPACE = "http://tempuri.org/";
    private static final String URL = "http://IPAddress/Serviceforc/Service.asmx";
    private String byteStr = "srikar";
    private byte[] bytedata = byteStr.getBytes();
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        System.out.println("bytedata is "+bytedata[0]);
        HttpTransportSE httpTransport = null;
        MarshalBase64 marshal = null;
        SoapObject request = null;
        request = new SoapObject(NAMESPACE, METHOD_NAME);
        PropertyInfo pi = new PropertyInfo();       
        pi.setName("value");
        pi.setValue(bytedata);
        pi.setType(MarshalBase64.BYTE_ARRAY_CLASS);
        request.addProperty(pi);
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                SoapEnvelope.VER11);
        envelope.dotNet = true;
        marshal = new MarshalBase64();
        marshal.register(envelope);
        envelope.setOutputSoapObject(request);

        httpTransport = new HttpTransportSE(URL);

        Object response;
        try {
            httpTransport.call(SOAP_ACTION, envelope);
            response = envelope.getResponse();
        } catch (Exception exception) {
            exception.printStackTrace();
            System.out.println("Exception is " + exception.toString());
            // strRes = exception.toString();
            response = exception.toString();

        }
        System.out.println("Response is "+response.toString());
}
}