android 和 webService交互
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交互的更多相关文章
- Android 与 Webservice 的快速保存
前面写了一篇android对sqllite的快速保存博客,今天我们来看看android与webservice的交互,相信很多有经验的人自然就想到了soap.但是如果在小型项目中,具有大材小用之嫌.实际 ...
- Android与H5交互(java与js的交互)
一.理论概述 1.js调用java方法 直接调用WebView的该方法就可以添加接口了,不过先要启动交互 // 启用javascript mWebView.getSettings().setJavaS ...
- Android调用WebService(转)
Android调用WebService WebService是一种基于SOAP协议的远程调用标准,通过 webservice可以将不同操作系统平台.不同语言.不同技术整合到一块.在Android SD ...
- android loginDemo +WebService用户登录验证
android loginDemo +WebService用户登录验证 本文是基于android4.0下的loginActivity Demo和android下的Webservice实现的.l ...
- Android平台调用WebService详解
上篇文章已经对Web Service及其相关知识进行了介绍(Android开发之WebService介绍 ),相信有的朋友已经忍耐不住想试试在Android应用中调用Web Service.本文将通过 ...
- struts2中获取request、response,与android客户端进行交互(文件传递给客户端)
用struts2作为服务器框架,与android客户端进行交互需要得到request.response对象. struts2中获取request.response有两种方法. 第一种:利用Servle ...
- 解决android开发webservice的发布与数据库连接的问题
由于app后续开发的需要,移植了两次webservice和数据库,遇到了不少问题,也花费了很多时间,实践告诉我要学会寻找问题的根源,这样才能在开发中节省时间,尽快解决问题!好,废话不多说,转入正题…… ...
- Android JS桥交互("Uncaught ReferenceError: xxx is not defined or xxx has no method")
网上android和js交互的代码有不少,也很容易搜到.最近在做的项目需要用到js桥,遇到了一些问题,记录下来,希望以后遇到能马上解决掉. 一开始我找的demo是从这个:http://blog.csd ...
- Android GIS +webservice
Android新手经典入门教程 Android开发教程(完全免费版) Android SDK v3.1.0 Android定位功能(一) Android定位功能(二) Android 百度地图开发(一 ...
随机推荐
- Daily,一个入门级的 React Native 应用
Daily,一个React-Native写的android app. 下拉刷新获取:图片.诗句.言语.音乐.乐评.雨声.知乎日报.历史上的今天. 可以说是一个入门级的React-Native应用. 项 ...
- 【C语言基础】unsigned short类型用于循环的一个难点
我在我的知识星球:“C语言解惑课堂”里的第一篇提出一个问题:[第1篇][C语言基础][unsigned short类型用于循环的一个难点]要查看更多的C语言难点解析或者需要提问的同学,微信扫扫文末我的 ...
- Java - 手动解析不带引号的JSON字符串
目录 1 需求说明 2 解析代码 2.1 实现思路 2.2 详细代码 2.3 测试样例 1 需求说明 项目中遇到了一批不带引号的类JSON格式的字符串: {Name:Heal,Age:20,Tag:[ ...
- Go语言-基本的http请求操作
Go发起GET请求 基本的GET请求 //基本的GET请求 package main import ( "fmt" "io/ioutil" "net/ ...
- c语言推箱子 扫雷项目
推箱子 两关的推箱子用到一个三维数组 用到的图片数据如下 https://pan.baidu.com/s/1IDE4GQLo46cxNywDqwxmlQ 密码:jdel 代码如下: #include& ...
- HTTP网页异常错误代码详解
在调试TomCat,等web服务器的时候我们有时候各种错误代码铺面而来,让人头疼不已,那么这些代码究竟都代表什么呢?知道这些代码会会对我们的调试帮助很大 让我们来看一下这些代码究竟什么意思 400 无 ...
- Leetcode之回溯法专题-52. N皇后 II(N-Queens II)
Leetcode之回溯法专题-52. N皇后 II(N-Queens II) 与51题的代码80%一样,只不过52要求解的数量,51求具体解,点击进入51 class Solution { int a ...
- JS高级(摘自简书)
JS高级 1. 访问对象属性(方法也是属性)的通用方式:obj['属性名'] 1. 属性名包含特殊字符,如"-".空格,访问:obj['content-type'] 2. 属性名不 ...
- python暴力算法快乐数
编写一个算法来判断一个数是不是"快乐数". 一个"快乐数"定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 ...
- JavaScript img标签自带的onload和onerror函数
onload 加载完成时调用触发 原生: <img src="" alt="Park" onload=“handleImageLoaded()”/> ...