android调用webservice传参数,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> mData;// 存储的EditText值

private ArrayList mData=new ArrayList();

//private ArrayList mDate = new ArrayList();

public Map editorValue = new HashMap();//

private TextView spendMoney;

public ListAdapter(Context context, ArrayList data,TextView spend) {

spendMoney=spend;

mData = data;

mInflater = LayoutInflater.from(context);

init();

}

// 初始化

private void init() {

editorValue.clear();

}

@Override

public int getCount() {

return mData.size();

}

@Override

public Object getItem(int position) {

return null;

}

@Override

public long getItemId(int position) {

return 0;

}

private Integer index = -1;

@Override

public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder holder = null;

// convertView为null的时候初始化convertView。

if (convertView == null) {

holder = new ViewHolder();

convertView = mInflater.inflate(R.layout.list_item, null);

holder.goodsName = (TextView) convertView

.findViewById(R.id.list_item_goodsName);

holder.goodsSellPrice = (TextView) convertView

.findViewById(R.id.list_item_goodsSellPrice);

holder.goodsUnit = (TextView) convertView

.findViewById(R.id.list_item_goodsUnit);

holder.goodsSellNum = (EditText) convertView

.findViewById(R.id.list_item_goodsSellNum);

holder.goodsSellNum.setTag(position);

/*holder.goodsSellNum.setOnTouchListener(new OnTouchListener() {

@Override

public boolean onTouch(View v, MotionEvent event) {

if (event.getAction() == MotionEvent.ACTION_UP) {

index = (Integer) v.getTag();

}

return false;

}

});*/

class MyTextWatcher implements TextWatcher {

public MyTextWatcher(ViewHolder holder) {

mHolder = holder;

}

private ViewHolder mHolder;

@Override

public void onTextChanged(CharSequence s, int start,

int before, int count) {

}

@Override

public void beforeTextChanged(CharSequence s, int start,

int count, int after) {

}

@Override

public void afterTextChanged(Editable s) {

if (s != null && !"".equals(s.toString())) {

int position = (Integer) mHolder.goodsSellNum.getTag();

/*mData.get(position).put("goodsSellNum",s.toString());// 当EditText数据发生改变的时候存到data变量中*/

item=(HashMap)mData.get(position);

item.put("goodsSellNum",s.toString());

mData.set(position,item);

spendMoney.setText(String.valueOf(calculate()));//计算总价格

}

}

}

holder.goodsSellNum.addTextChangedListener(new MyTextWatcher(holder));

convertView.setTag(holder);

} else {

holder = (ViewHolder) convertView.getTag();

holder.goodsSellNum.setTag(position);

}

item=(HashMap)mData.get(position);

Object value=item.get("goodsName");

//Object value = mData.get(position).get("list_item_goodsName");

if (value != null) {

holder.goodsName.setText((String) value);

}

item=(HashMap)mData.get(position);

value=item.get("goodsSellPrice");

//value = mData.get(position).get("list_item_goodsSellPrice");

if (value != null) {

holder.goodsSellPrice.setText(value.toString());

}

item=(HashMap)mData.get(position);

value=item.get("goodsUnit");

//value = mData.get(position).get("list_item_goodsUnit");

if (value != null) {

holder.goodsUnit.setText(value.toString());

}

item=(HashMap)mData.get(position);

value=item.get("goodsSellNum");

//value = mData.get(position).get("list_item_goodsSellNum");

if (value != null && !"".equals(value)) {

holder.goodsSellNum.setText(value.toString());

}

holder.goodsSellNum.clearFocus();

if (index != -1 && index == position) {

holder.goodsSellNum.requestFocus();

}

return convertView;

}

public final class ViewHolder {

public TextView goodsName;

public TextView goodsSellPrice;

public EditText goodsSellNum;// ListView中的输入

public TextView goodsUnit;// 用来定义的标志性主键,可不用关心

}

public float calculate() {

float money = 0;

for (int i = 0; i < mData.size(); i++) {

HashMap item = new HashMap();

item = (HashMap) mData.get(i);

float num = Float.parseFloat(item.get("goodsSellNum").toString());

float price = Float.parseFloat(item.get("goodsSellPrice").toString());

money = money + num * price;

}

return money;

}

}

8.调如何用ListAdapter类

ListAdapter adapter = new ListAdapter(this, list,spendMoney);

lv_goodsList.setAdapter(adapter);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487715.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YYT 0659 - 2008全自动凝血分析仪

YYT 0659 - 2008全自动凝血分析仪转载于:https://www.cnblogs.com/sunlyk/p/7427625.html

构建城市大脑的未来标准,9个值得探索的规范

简述&#xff1a;50年来互联网从网状向类脑架构进化并与城市建设结合是城市大脑产生的根源。城市大脑建设是工程问题&#xff0c;但首先也是基础科学问题&#xff0c;掌握科技发展规律是发现和构建城市大脑建设标准的基础。通过总结互联网大脑模型的特征&#xff0c;提出了城市…

android 下载器布局,Android Studio下载约束布局失败

To install:– com.android.support.constraint:constraint-layout-solver:1.0.0-alpha3 (extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha3)– com.android.support.constraint:constraint-layout:1.0.0-alpha3 (extras;m2reposito…

第一节《Git初始化》

创建版本库以及第一次提交 首先我看查看一下git的版本&#xff0c;本地的git是用的yum安装方式&#xff0c;如果想使用源码安装请参考官方文档。 [rootgit ~]# git --versiongit version 1.7.1 再开始Git之前&#xff0c;我们需要设置一下Git的配置变量&#xff0c;这些设置会在…

马斯克39也火星计划PPT

转自 | 软件定义世界&#xff08;SDX&#xff09;北京时间 5 月 31 日凌晨 3&#xff1a;23 &#xff0c;SpaceX 最新的载人龙飞船在美国肯尼迪航天中心 39A 发射台成功发射&#xff0c;在全球观众的注视下&#xff0c;载着两名宇航员还有一只恐龙玩偶前往国际空间站。 马斯克曾…

如何进入docker容器

在使用docker创建了容器之后&#xff0c;大家比较关心的就是如何进入该容器了&#xff0c;其实进入Docker容器有好几多种方式&#xff0c;这里我们就讲一下常用的几种进入Docker容器的方法。 1.使用docker attach进入Docker容器 Docker提供了attach命令来进入Docker容器。接下来…

android surface windows,【技术攻略】s3 硬盘android+windows10双系统

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼grub.cfg内容set timeout5set default"0"menuentry Windows {search --file --no-floppy --setroot /EFI/Microsoft/Boot/bootmgfw.efichainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi}menuentry "Android-…

麻省理工学院让软体机器人拥有了更好的触觉和空间感知能力

MIT来源&#xff1a; IEEE电气电子工程师当机器人可以抓取薯片且不会压碎它的时候&#xff0c;这就意味着它们越来越先进了。为了做到这一点&#xff0c;需要赋予它们触觉和本体感知 -- 一种对它们在空间位置中的感知。这种感觉在大多数软体机器人中是不存在的&#xff0c;但是…

android图片文件的路径地址与uri的相互转换,android图片文件的路径地址与Uri的相互转换...

uri ---> 绝对路径/*** Try to return the absolute file path from the given Uri** param context* param uri* return the file path or null*/public static String getRealFilePath( final Context context, final Uri uri ) {if ( null uri ) return null;final Stri…

centos 环境变量配置

CentOS系统下如何将PHP和mysql命令加入到环境变量中&#xff0c;在Linux CentOS系统上 安装完php和MySQL后&#xff0c;为了使用方便&#xff0c;需要将php和mysql命令加到系统命令中&#xff0c;如果在没有添加到环境变量之前&#xff0c;执行“php -v”命令查看当前php版本信…

5G时代,解锁机器视觉与千行百业的“完美关系”

来源&#xff1a; 脑极体在人工智能带来的诸多产业升级价值中&#xff0c;机器视觉毫无疑问将贡献最大的篇幅。无论是在工业、农业、服务业、金融业&#xff0c;基于视觉交互的智能解决方案都在智能化体系中占据了80%以上的比例。而且视觉往往还是知识图谱、语义分割、机器学习…

Tkinter图片按钮

1 imgBtn tk.PhotoImage(filetest.png) 2 tk.Button(imageimgBtn).pack() 3 tk.mainloop() 转载&#xff0c;来源简书评论&#xff0c;地址&#xff1a;http://www.jianshu.com/p/5c7a1af4aa53 侵删转载于:https://www.cnblogs.com/yechenkai/p/7429553.html

华为p10plus能用鸿蒙吗,华为P10/P10 Plus对比评测:自家兄弟大对决

华为P10/P10 Plus上手评测&#xff1a;离完美更近一步刚刚华为在巴塞罗那正式推出P10系列新机。早在发布会前&#xff0c;身边不少朋友都问“是等等S8还是选P10”。私以为这问题总有些眼熟。若干年前也是MWC&#xff0c;估计不少人会想&#xff1a;到底是买三星还是HTC。华为P1…

马斯克39页火星计划PPT曝光,我们能学到什么

来源&#xff1a;管理晨读本文ppt部分转载自公众号北美工程师求职顾问新闻报道部分来自于中新社SpaceX公司首席运营官马斯克一直梦想着移民火星&#xff0c;并在之前完成了许多的开发计划和实验。很多人说他是异想天开&#xff0c;也有很多人觉得火星目前没有找到绿色生物&…

Tomcat安装与环境变量的配置

Tomacat的下载 去Tomcat官网下载&#xff0c;我使用的是apache-tomcat-7.0.78的版本。 安装 下载完成之后&#xff0c;我们解压缩到相应的目录。这里我解压缩到d盘下面 1、然后去配置系统的环境变量&#xff0c;新建系统变量&#xff1a; catalina_home 2、下面两个系…

android高德天气api接口,天气查询-API文档-开发指南-Web服务 API | 高德地图API

产品介绍天气查询是一个简单的HTTP接口&#xff0c;根据用户输入的adcode&#xff0c;查询目标区域当前/未来的天气情况。使用API前您需先申请Key&#xff0c;若无高德地图API账号需要先申请账号。适用场景需要使用相关天气查询的时候。使用限制服务调用量的限制请点击这里查阅…

Gartner对于建设「数据中台」的建议

来源&#xff1a;云技术&#xff08;文&#xff1a;Gartner高级研究总监 孙鑫&#xff09;数据中台是中国本土诞生的一个名词&#xff0c;很多企业在“什么是数据中台”和“我要上XX中台”徘徊。其炒作程度跟当年的“大数据” 一词有的一拼&#xff0c;如果用Gartner的炒作周期…

[python 学习] requests 库的使用

1、get请求 # -*- coding: utf-8 -*- import requestsURL_IP "http://b.com/index.php" pyload {cate:1,id:2} headers {User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36} def use_…

直通输出设备 android kodi,【本地播放】利用Kodi媒体播放器轻松实现源码输出DTS到功放...

本帖最后由 PlyFly 于 2015-2-13 22:11 编辑各位花粉注意了&#xff0c;本次发布的B056固件&#xff0c;华为终于修复了DTS源码输出到功放不能正常解码的问题(如功放无声音、破音等等)。经实际测试&#xff0c;不用Kodi就能轻松将DTS源码输出到功放解码&#xff0c;且无任何异常…

3纳米、2纳米、1纳米芯片该如何造?

来源&#xff1a;EETOP编译目前台积电和三星正在加紧开发他们的3nm和2nm技术&#xff0c;目前预计分别在2022年和2024年推出。1nm及以上工艺也正在进行中&#xff0c;但是距离仍然很远。业界希望从3nm开始&#xff0c;从当今的finFET晶体管过渡到全能栅极或称为环绕式栅极FET(G…