webService 很久不用了,第一次使用还是13年, 早已忘记怎么搞了.今天看了篇博文,写了个demo .记录下吧!

首先要下载skoap2  .... xxx.jar  ,我用的是最新的3.6.2 , 下载地址网上很多. 随便下载个版本就行.

public class MainActivity extends AppCompatActivity {

    private Button btn;

    @Override
protected void onCreate(Bundle savedInstanceState) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.button); btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new Thread(){
@Override
public void run() {
getRemoteInfo();
}
}.start();
}
});
} /**
* 得到远程数据
*/
private void getRemoteInfo() {
//String nameSpace = "http://WebXml.com.cn/";//命名空间
String nameSpace = "http://WebXml.com.cn/";//命名空间
//String methodName = "getMobileCodeInfo";//调用的方法名
String methodName = "getOpenFundString";//调用的方法名
//String endPoint = "http://www.webxml.com.cn/WebServices/MobileCodeWS.asmx";
String endPoint = "http://ws.webxml.com.cn/WebServices/ChinaOpenFundWS.asmx";
//String soapAction = "http://WebXml.com.cn/getMobileCodeInfo";
String soapAction = "http://WebXml.com.cn/getOpenFundString";
//指定webservice的命名空间和调用方法
SoapObject rpc = new SoapObject(nameSpace,methodName);
//需要传入的参数
//rpc.addProperty("theCityName","郑州");
//rpc.addProperty("",null);
//生产调用webService方法的SOAP请求信息,并指定SOAP的版本 ,这个版本 根据 asdl文件中是1.1还是1.2协议来指定的. 一般VER11或者VER12都可以,以前还有VER10
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER12);
envelope.bodyOut = rpc;
envelope.dotNet = true;//设置是否调用的是dotNet开发的webService
//(new MarshalBase64()).register(envelope);
// 等价于envelope.bodyOut = rpc;
envelope.setOutputSoapObject(rpc);
HttpTransportSE transportSE = new HttpTransportSE(endPoint);
transportSE.debug = true;
try {
//调用webService
transportSE.call(soapAction,envelope);
transportSE.call(null,envelope);
if(envelope.getResponse()!=null){
//获取返回的结果
// SoapObject object = (SoapObject) envelope.bodyIn;
// List<String> list= new ArrayList<>();
// int count = object.getPropertyCount();
// for (int i=0;i<count;i++){
// SoapObject subObject = (SoapObject) object.getProperty(i);
// String name = subObject.getPropertyAsString(i);
//
// list.add(name);
// }
// Log.e("集合长度",list.size()+"");
String result = String.valueOf(envelope.getResponse());
Log.e("返回结果--------->",result);
Message message = Message.obtain();
message.obj = result;
handler.sendMessage(message);
}
} catch (Exception e) {
e.printStackTrace();
}
} private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
String result = (String) msg.obj;
}
};
}

代码中有一大段注释,这里可以 获取网络数据并解析,一般情况下获取的数据有3种样式,xml 或者 json, 前两者都好说.

还有一种是anyType{string=xxxx; string=1232; ...}

参考:

http://blog.csdn.net/xf396191344/article/details/32135729

http://www.cnblogs.com/bruceli-net/p/5688216.html

http://blog.csdn.net/yuanyuan_186/article/details/51122579

android 和 webService交互的更多相关文章

  1. Android 与 Webservice 的快速保存

    前面写了一篇android对sqllite的快速保存博客,今天我们来看看android与webservice的交互,相信很多有经验的人自然就想到了soap.但是如果在小型项目中,具有大材小用之嫌.实际 ...

  2. Android与H5交互(java与js的交互)

    一.理论概述 1.js调用java方法 直接调用WebView的该方法就可以添加接口了,不过先要启动交互 // 启用javascript mWebView.getSettings().setJavaS ...

  3. Android调用WebService(转)

    Android调用WebService WebService是一种基于SOAP协议的远程调用标准,通过 webservice可以将不同操作系统平台.不同语言.不同技术整合到一块.在Android SD ...

  4. android loginDemo +WebService用户登录验证

        android loginDemo +WebService用户登录验证 本文是基于android4.0下的loginActivity Demo和android下的Webservice实现的.l ...

  5. Android平台调用WebService详解

    上篇文章已经对Web Service及其相关知识进行了介绍(Android开发之WebService介绍 ),相信有的朋友已经忍耐不住想试试在Android应用中调用Web Service.本文将通过 ...

  6. struts2中获取request、response,与android客户端进行交互(文件传递给客户端)

    用struts2作为服务器框架,与android客户端进行交互需要得到request.response对象. struts2中获取request.response有两种方法. 第一种:利用Servle ...

  7. 解决android开发webservice的发布与数据库连接的问题

    由于app后续开发的需要,移植了两次webservice和数据库,遇到了不少问题,也花费了很多时间,实践告诉我要学会寻找问题的根源,这样才能在开发中节省时间,尽快解决问题!好,废话不多说,转入正题…… ...

  8. Android JS桥交互("Uncaught ReferenceError: xxx is not defined or xxx has no method")

    网上android和js交互的代码有不少,也很容易搜到.最近在做的项目需要用到js桥,遇到了一些问题,记录下来,希望以后遇到能马上解决掉. 一开始我找的demo是从这个:http://blog.csd ...

  9. Android GIS +webservice

    Android新手经典入门教程 Android开发教程(完全免费版) Android SDK v3.1.0 Android定位功能(一) Android定位功能(二) Android 百度地图开发(一 ...

随机推荐

  1. 如何调教你的博客Episode1——修改整体样式

    如图所示,这是你刚刚注册的博客园博客,让我们开始一步步修改它. 1.写入自适应代码 html,body{ height:100%; border:; margin:; padding:; } body ...

  2. JVM面试十问

    1. JVM运行时划分哪几个区域?哪些区域是线程共享的?哪些区域是线程独占的? JVM运行时一共划分:程序计数器.虚拟机栈.堆.本地方法栈.方法区. 线程共享的数据区域:堆.方法区. 线程独享的数据区 ...

  3. 分布式存储——ceph 的 python 基础接口

    python 使用 boto 库完成分布式存储读.写.判断接口 import boto import boto.s3.connection from boto.s3.key import Key im ...

  4. ansible批量自动配置Juniper

    一.需求 有几台新上线的Juniper,需要批量配置下syslog,ntp,snmp基础配置 二.拓扑 三.实施步骤 1.读取配置并输出作为初步核查 2.把配置载入网络其中一台网络设备中,并做一个sh ...

  5. Nacos(三):Nacos与OpenFeign的对接使用

    前言 上篇文章中,简单介绍了如何在SpringCloud项目中接入Nacos作为注册中心,其中服务消费者是通过RestTemplate+Ribbon的方式来进行服务调用的. 实际上在日常项目中服务间调 ...

  6. Facebook的早期历史

    Facemash:谁更有吸引力?Facebook的起源   2003年,当时扎克伯格还是一名哈佛大学的二年级学生,他编写了一个名为Facemash的网站.他利用黑客技术入侵了学校管理部门的网站,并从中 ...

  7. Redis缓存,持久化,高可用

    一,Redis作缓存服务器 ​ 本篇博客是接着上一篇博客未分享完的技术点. ​ redis作为缓存服务器是众多企业中的选择之一,虽然该技术很成熟但也是存在一定的问题.就是缓存带来的缓存穿透,缓存击穿, ...

  8. mac下面有epoll?

    没有的,但是mac下面有kqueue,跟epoll原理是差不多的. 这个是没办法的,如果实在需要,就用Ubuntu吧,这个也可以无缝迁移. 更多资源,更多文章由小白技术社提供(是我啦)

  9. 《Java 8 in Action》Chapter 6:用流收集数据

    1. 收集器简介 collect() 接收一个类型为 Collector 的参数,这个参数决定了如何把流中的元素聚合到其它数据结构中.Collectors 类包含了大量常用收集器的工厂方法,toLis ...

  10. 智能家居系列之——WIFI小车

    2017年准备搬新家了,一直关注着树莓派的论坛,看有没有新玩意,想着今年过年在杭州过年,头一次在城里过年,感觉特别无聊,没有麻将可以打,没有鞭炮可以放,只能在家做做小玩意.从小就对四驱车有兴趣,一直想 ...