Android 基于ksoap2的webservice请求的学习

Android 基于ksoap2的webservice请求的学习,第1张

概述【学习阶段】 WebService网络请求? 其实我也是第一次遇到,之所以有这个需要是因为一些与 ERP 相关的业务,需要用到这样的一个请求方式。 开始学习WebService ①当然是百度搜索,这里  【学习阶段】WebService网络请求?

    其实我也是第一次遇到,之所以有这个需要是因为一些与 ERP 相关的业务,需要用到这样的一个请求方式。

开始学习WebService 

  ①当然是百度搜索,这里找了一个学习的博客  https://blog.csdn.net/swjtugiser/article/details/76840353

   使用 ksoap2 框架请求 ,jar 包下载地址   http://simpligility.github.io/ksoap2-android/getting-started.html  ,放在Project 模式的  libs 目录下。

           根据以上地址进行学习。

 

  ②在开发的过程中我们频繁的用到 网络请求,所以我们最好能封装成像okhttp一样的类。 

  1 package com.example.aust_app;  2   3   4 /*Created by wqy on 2019/11/8.*/  5   6 import androID.content.Context;  7  androID.os.AsyncTask;  8   9  org.ksoap2.soapEnvelope; 10  org.ksoap2.serialization.soapObject; 11  org.ksoap2.serialization.soapSerializationEnvelope; 12  org.ksoap2.transport.httpTransportSE; 13  14 public class WebRequest { 15  16     private  String SOAP_ACTION="http://WebXml.com.cn/getRegionProvince";  //可以设置一些默认值 17     private  String nameSPACE="http://WebXml.com.cn/"; 18     private  String METHOD_name="getRegionProvince" 19     private  String URL="http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?WSDL" 20  21     WebRequest request = null 22     Context context =  23  24  25     public WebRequest(Context context) { 26         this.context = context; 27     } 28  29     static  WebRequest init(Context context){ 30         return new WebRequest(context); 31  32  33      String getSOAP_ACTION() { 34         return SOAP_ACTION; 35  36  37      WebRequest setSOAP_ACTION(String SOAP_ACTION) { 38         this.soAP_ACTION = 39         this 40  41  42      String getnameSPACE() { 43          nameSPACE; 44  45  46      WebRequest setnameSPACE(String nameSPACE) { 47         this.nameSPACE = 48          49  50  51      String getmethod_name() { 52          METHOD_name; 53  54  55      WebRequest setMETHOD_name(String METHOD_name) { 56         this.METHOD_name = 57          58  59  60      String getURL() { 61          URL; 62  63  64      WebRequest setURL(String URL) { 65         this.URL = 66          67  68  69     private SoapObject getinformation(){ 70         SoapObject request= SoapObject(nameSPACE,METHOD_name); 71  72         SoapSerializationEnvelope envelope =  SoapSerializationEnvelope(SoapEnvelope.VER11); 73         envelope.setoutputSoapObject(request); 74         try{ 75             httpTransportSE transportSE= httpTransportSE(URL); 76             transportSE.call(SOAP_ACTION,envelope); 77             SoapObject result=(SoapObject)envelope.bodyIn; //获取到返回的结果,并强制转换成SoapObject对象 78             SoapObject test = (SoapObject)result.getProperty(0); 该对象中还嵌套了一个SoapObject对象,需要使用getProperty(0)把这个对象提取出来 79              test; 80         }catch (Exception e){ 81             e.printstacktrace(); 82         } 83          84  85  86     SoapObject result; 在子线程中请求webservice 87     class DownloadTask extends AsyncTask<VoID,Integer,Boolean> { 88  89         @OverrIDe 90         protected Boolean doInBackground(VoID... voIDs) { 91             result = getinformation(); 92              93  94  95  96         protected voID onPostExecute(Boolean aBoolean) { 97             StringBuilder builder =  StringBuilder(); 98             解析返回的数据 99             for(int i=0;i<result.getPropertyCount();i++){100                 builder.append(result.getProperty(i));101             }102             if (postExecute!=103                 postExecute.getResult(builder.toString());104 105 106 107 108      execute(){109          DownloadTask().execute();110 111 112     PostExecuteListener postExecute;113     interface PostExecuteListener{114          getResult(String result);115 116 117      PostExecuteListener getPostExecute() {118          postExecute;119 120 121      WebRequest setPostExecuteListener(PostExecuteListener postExecute) {122         this.postExecute =123         124 125 }

 

  ③在Activity中使用这样的类

 WebRequest.init(this).setURL("url").setnameSPACE("namespace").setMETHOD_name("methodname")                .setSOAP_ACTION("soapAction").setPostExecuteListener( WebRequest.PostExecuteListener() {            @OverrIDe             getResult(String result) {                Toast.makeText(Main2Activity.this,""+result,Toast.LENGTH_SHORT).show();            }        }).execute();

 

 【开发阶段】

  以上是学习阶段,利用别人给的测试接口进行测试,并且进行一定的封装使用,一系列没有任何问题。然后再去进入自己开发阶段。【解决问题⬇ 总结

以上是内存溢出为你收集整理的Android 基于ksoap2的webservice请求的学习全部内容,希望文章能够帮你解决Android 基于ksoap2的webservice请求的学习所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1121292.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存