这篇文章主要为大家详细介绍了android调用webservice接口获取信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
我的有一篇博客上讲了如何基于CXF搭建webservice,service层的接口会被部署到tomcat上,这一篇我就讲一下如何在安卓中调用这些接口传递参数。
1.在lib中放入ksoap2的jar包并导入
2.在xml 配置文件中加入:
3.接下来就要通过代码调用借口了
String WSDL_URI = "http://localhost:8080/WebService4/getNewIdPort?wsdl";//wsdl 的uri String namespace = "http://services.he.TSD/";//namespace String methodName = "getNew";//要调用的方法名称 // 创建HttpTransportSE对象 HttpTransportSE ht = new HttpTransportSE(WSDL_URI); ht.debug = true; // 使用soap1.1协议创建Envelop对象 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);// 实例化SoapObject对象 SoapObject object = new SoapObject(namespace, methodName); // 设置参数 object.addProperty("arg0", "hhh"); // 将SoapObject对象设置为SoapSerializationEnvelope对象的传出SOAP消息 envelope.bodyOut = object;//由于是发送请求,所以是设置bodyOut envelope.dotNet =false; envelope.setOutputSoapObject(object); try{ // 调用webService ht.call(null, envelope); System.out.println("回传的值 :"+envelope.getResponse()); } catch (Exception e) { e.printStackTrace(); String msg=e.getMessage(); System.out.println(msg); }
4.若webservice接收不到android传来的值:
(1)参数名不对
(2).net的webservice要将envelope.dotNet =true,否则envelope.dotNet =false
5.由于是部署到tomcat上的,为了同处于一个网段,要手机和电脑连一个wifi。 ipv4查找用window+R,接着cmd,最后ipconfig 即可查到。
6.要关闭windows防火墙
7.当时我还遇到了一个问题,就是当传递的信息复杂时,比如传递list型的一个自定义的类,会出现问题,当时我是重写了ListAdapter类,如下所示:
package com.adapter; /** * Created by hexiaolu on 2017/4/13. */ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.EditText; import android.widget.ListView; import android.widget.TextView; import com.example.administrator.stock2.R; public class ListAdapter extends BaseAdapter { HashMap item = new HashMap(); private LayoutInflater mInflater; //private List
8.调如何用ListAdapter类
ListAdapter adapter = new ListAdapter(this, list,spendMoney); lv_goodsList.setAdapter(adapter);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持html中文网。
以上就是android调用webservice接口获取信息的详细内容,更多请关注0133技术站其它相关文章!