Android 10 的 WebService 调用
创始人
2024-08-12 13:30:43
0

要在Android 10中进行WebService调用,可以使用以下解决方法:

  1. 使用HttpURLConnection类进行WebService调用:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class WebServiceCaller {
    public static String callWebService(String url, String soapAction, String xmlInput) {
        try {
            URL requestUrl = new URL(url);
            HttpURLConnection connection = (HttpURLConnection) requestUrl.openConnection();
            connection.setRequestMethod("POST");
            connection.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
            connection.setRequestProperty("SOAPAction", soapAction);
            connection.setDoOutput(true);

            OutputStream outputStream = connection.getOutputStream();
            outputStream.write(xmlInput.getBytes());
            outputStream.flush();
            outputStream.close();

            int responseCode = connection.getResponseCode();

            if (responseCode == HttpURLConnection.HTTP_OK) {
                BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                StringBuilder response = new StringBuilder();
                String line;
                while ((line = reader.readLine()) != null) {
                    response.append(line);
                }
                reader.close();

                return response.toString();
            } else {
                return null;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}

使用示例:

String url = "http://example.com/myservice";
String soapAction = "http://example.com/myservice/action";
String xmlInput = "" +
        "" +
        "" +
        "" +
        "value1" +
        "value2" +
        "" +
        "" +
        "";

String response = WebServiceCaller.callWebService(url, soapAction, xmlInput);
  1. 使用第三方库如Ksoap2进行WebService调用:

添加Ksoap2库的依赖:

implementation 'com.google.code.ksoap2-android:ksoap2-android:3.6.4'

使用示例:

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.PropertyInfo;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;

public class WebServiceCaller {
    public static String callWebService(String url, String namespace, String methodName, PropertyInfo[] properties) {
        try {
            SoapObject request = new SoapObject(namespace, methodName);

            if (properties != null) {
                for (PropertyInfo property : properties) {
                    request.addProperty(property);
                }
            }

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

            HttpTransportSE transport = new HttpTransportSE(url);
            transport.call(namespace + methodName, envelope);

            SoapPrimitive response = (SoapPrimitive) envelope.getResponse();

            return response.toString();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}

使用示例:

String url = "http://example.com/myservice";
String namespace = "http://example.com/webservice";
String methodName = "MyWebServiceMethod";

PropertyInfo parameter1 = new PropertyInfo();
parameter1.setName("Parameter1");
parameter1.setValue("value1");
parameter1.setType(String.class);

PropertyInfo parameter2 = new PropertyInfo();
parameter2.setName("Parameter2");
parameter2.setValue("value2");
parameter2.setType(String.class);

PropertyInfo[] properties = new PropertyInfo[]{parameter1, parameter2};

String response = WebServiceCaller.callWebService(url, namespace, methodName, properties);

这些示例均为基本示例,实际情况中可能需要根据WebService的具体要求进行参数设置和解析返回结果。

相关内容

热门资讯

安卓换鸿蒙系统会卡吗,体验流畅... 最近手机圈可是热闹非凡呢!不少安卓用户都在议论纷纷,说鸿蒙系统要来啦!那么,安卓手机换上鸿蒙系统后,...
安卓系统拦截短信在哪,安卓系统... 你是不是也遇到了这种情况:手机里突然冒出了很多垃圾短信,烦不胜烦?别急,今天就来教你怎么在安卓系统里...
app安卓系统登录不了,解锁登... 最近是不是你也遇到了这样的烦恼:手机里那个心爱的APP,突然就登录不上了?别急,让我来帮你一步步排查...
安卓系统要维护多久,安卓系统维... 你有没有想过,你的安卓手机里那个陪伴你度过了无数日夜的安卓系统,它究竟要陪伴你多久呢?这个问题,估计...
windows官网系统多少钱 Windows官网系统价格一览:了解正版Windows的购买成本Windows 11官方价格解析微软...
安卓系统如何卸载app,轻松掌... 手机里的App越来越多,是不是感觉内存不够用了?别急,今天就来教你怎么轻松卸载安卓系统里的App,让...
怎么复制照片安卓系统,操作步骤... 亲爱的手机控们,是不是有时候想把自己的手机照片分享给朋友,或者备份到电脑上呢?别急,今天就来教你怎么...
安卓系统应用怎么重装,安卓应用... 手机里的安卓应用突然罢工了,是不是让你头疼不已?别急,今天就来手把手教你如何重装安卓系统应用,让你的...
iwatch怎么连接安卓系统,... 你有没有想过,那款时尚又实用的iWatch,竟然只能和iPhone好上好?别急,今天就来给你揭秘,怎...
iphone系统与安卓系统更新... 最近是不是你也遇到了这样的烦恼?手机更新系统总是失败,急得你团团转。别急,今天就来给你揭秘为什么iP...