web service上传参数代码实例
web service上传参数代码实例
这次做的项目用到webservice比较多,最开始在网上看的参考dome,发现都不行,后来发现安卓4.0以后有很大的不同,在做传参时,有些东西需要注意:
第一,命名空间:与服务器一致,命名空间后缀千万不要加“/”;
第二,方法名:与服务器一致;
第三,url:就是服务器地址不加后面的?=。。。;
代码如下:
- package com.example.web;
- import java.util.ArrayList;
- import org.ksoap2.SoapEnvelope;
- import org.ksoap2.serialization.SoapObject;
- import org.ksoap2.serialization.SoapSerializationEnvelope;
- import org.ksoap2.transport.HttpTransportSE;
- import android.annotation.SuppressLint;
- import android.annotation.TargetApi;
- import android.app.Activity;
- import android.os.Build;
- import android.os.Bundle;
- import android.os.StrictMode;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.TextView;
- //@SuppressLint("NewApi")
- @TargetApi(Build.VERSION_CODES.GINGERBREAD) @SuppressLint("NewApi") public class MainActivity extends Activity {
- public static final String TAG ="webService_pj";
- Button button;
- TextView resultView;
- String result ;
- String str_userno = "144";
- // @TargetApi(Build.VERSION_CODES.GINGERBREAD) @SuppressLint("NewApi")
- @TargetApi(Build.VERSION_CODES.GINGERBREAD) @SuppressLint("NewApi") @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- // 强制在UI线程中操作
- StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
- .detectDiskReads()
- .detectDiskWrites()
- .detectNetwork()
- .penaltyLog()
- .build());
- StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
- .detectLeakedSqlLiteObjects()
- .detectLeakedClosableObjects()
- .penaltyLog()
- .penaltyDeath()
- .build());
- resultView = (TextView)findViewById(R.id.TextView);
- button = (Button) findViewById(R.id.butt);
- button.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View arg0) {
- // TODO Auto-generated method stub
- String nameSpace = "";
- // 调用的方法名称
- String methodName = "";
- String url = "http://i.cnblogs.com/EditPosts.aspx";
- String soapAction = "nameSpace+methodName";
- ArrayList<String> params= new ArrayList<String>();
- params.add("str_userno");
- params.add("str_sex");
- params.add("str_telephone");
- params.add("str_pwd");
- ArrayList<String> vals= new ArrayList<String>();
- vals.add("33");
- vals.add("1");
- vals.add("23442");
- vals.add("1443");
- new MyThread(nameSpace,methodName,url,soapAction, params,vals).start();
- //将WebService返回的结果显示在TextView中
- resultView.setText("dfsd"+getResult());
- }
- });
- }
- public String getResult(){
- return result;
- }
- private class MyThread extends Thread
- {
- private String nameSpace;
- private String methodName;
- private String soapAction;
- private String url;
- private ArrayList<String> params;
- private ArrayList<String> vals;
- public MyThread(String nameSpace, String methodName,
- String url, String soapAction,ArrayList<String> params,ArrayList<String> vals){
- this.nameSpace = nameSpace;
- this.methodName = methodName;
- this.url = url;
- this.soapAction = soapAction;
- this.params = params;
- this.vals = vals;
- }
- @Override
- public void run()
- {
- result= getRemoteInfo(nameSpace, methodName, url,
- soapAction,params,vals);
- }
- }
- public String getRemoteInfo(String nameSpace, String methodName,
- String url, String soapAction,ArrayList<String> params,ArrayList<String> vals) {
- // 指定WebService的命名空间和调用的方法名
- SoapObject rpc = new SoapObject(nameSpace, methodName);
- //设置需调用WebService接口需要传入的两个参数mobileCode、userId
- //
- //for (int i = 0; i < params.size();i++) {
- rpc.addProperty(params.get(0),vals.get(0));
- rpc.addProperty(params.get(1),vals.get(1));
- rpc.addProperty(params.get(2),vals.get(2));
- rpc.addProperty(params.get(3),vals.get(3));
- System.out.println(rpc);
- // rpc.addProperty("Content-Type", "text/xml; charset=utf-8");
- // rpc.addProperty("Content-Length", "length");
- //}
- //生成调用WebService方法的SOAP请求信息,并指定SOAP的版本
- SoapSerializationEnvelope envelope =new SoapSerializationEnvelope(SoapEnvelope.VER10);
- envelope.bodyOut = rpc;
- envelope.setOutputSoapObject(rpc);
- // envelope.bodyIn = rpc;
- envelope.dotNet = true;
- // HttpTransportSE transport = new HttpTransportSE(url);
- HttpTransportSE transport=new HttpTransportSE(url);//20秒限时
- try {
- // 调用WebService
- transport.call(soapAction,envelope);
- System.out.println("haha");
- if(envelope.getResponse()!=null){
- SoapObject object = (SoapObject)envelope.bodyIn;
- if (object != null) {
- // 获取返回的结果
- result =object.getProperty(0).toString();
- System.out.println("faf"+result);
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- System.out.println("yghu"+result);
- }
- // 获取返回的数据
- return result;
- }
- }
写的不好之处希望大神指点下,赶鸡不进,嘿嘿,希望对大家有用!
web service上传参数代码实例的更多相关文章
- java web service 上传下载文件
1.新建动态web工程youmeFileServer,新建包com,里面新建类FileProgress package com; import java.io.FileInputStream; imp ...
- web service 上传file说明
之前做过一个接口,PI发布WEB SERVICE给对方调,传附件到SAP... 接口中包含文件名称,文件类型,文件流... 1.SOAPUI新建项目: 文件内容的地方会自动带上一个ID,这个ID对应文 ...
- JSCH实现文件上传的代码实例
package com.vcredit.ddcash.monitor.sendmail; import java.io.File;import java.io.FileInputStream;impo ...
- JavaWeb实现文件上传下载功能实例解析
转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...
- web 文件上传的几种方式
问题 文件上传在WEB开发中应用很广泛. 文件上传是指将本地图片.视频.音频等文件上传到服务器上,可以供其他用户浏览或下载的过程. 以下总结了常见的文件(图片)上传的方式和要点处理. 表单上传 这是传 ...
- Web文件上传方法总结大全
1. 表单上传 这是传统的form表单上传,使用form表单的input[type=”file”]控件,可以打开系统的文件选择对话框,从而达到选择文件并上传的目的,它的好处是多浏览器兼容,它是web开 ...
- web 图片上传实现本地预览
在说上传之前先说说如何替换or美化浏览器自带的简陋上传按钮(自定义自己的上传按钮 如:img): 1.将自定义上传按钮上方添加 input file 框,实现input实现透明处理. 2.对自定义上传 ...
- JavaWeb实现文件上传下载功能实例解析 (好用)
转: JavaWeb实现文件上传下载功能实例解析 转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web ...
- 从WEB SERVICE 上返回大数据量的DATASET
前段时间在做一个项目的时候,遇到了要通过WEB SERVICE从服务器上返回数据量比较大的DATASET,当然,除了显示在页面上以外,有可能还要用这些数据在客户端进行其它操作.查遍了网站的文章,问了一 ...
随机推荐
- Moon.Orm3.8技术全攻略
Moon.ORM技术全攻略 一.绪论 本文主要是针对Moon.ORM的技术的讨论及其使用使用指导.如有其它疑问,请留言.本文主要针对Moon.ORM3.9版本,同时将会对4.0做一个技术预览.本文从 ...
- URL,URI和URN的理解
我想很多人和我一样弄不清楚URI和URL之间的区别,有人可能觉得这是统一概念的不同表述而已. 我们先看看定义: URI:Uniform Resource Identifier,即统一资源标志符,用来唯 ...
- Windows Phone中扩展WebBrowser使其支持绑定html内容
在WP开发中,有时候会用到WebBrowser控件来展示一些html内容,这个控件有很多局限性,比如不支持绑定内容,这样的MVVM模式中就无法进行内容的绑定.为了实现这个目的,需要扩展一下,具体代码如 ...
- .Net实现拉勾网爬虫
前几天看到一个.NET Core写成的爬虫,有些莫名的小兴奋,之前一直用集搜客去爬拉勾网的招聘信息,这个傻瓜化工具相当于用HTML模板页去标记DOM节点,然后在浏览器窗口上模拟人的浏览行为同时跟踪节点 ...
- http服务器返回状态代码含义
100 - 表示已收到请求的一部分,正在继续发送余下部分. 101 - 切换协议. 2xx - 成功.服务器成功地接受了客户端请求: 200 - 确定.客户端请求已成功. 201 - 已创建. 202 ...
- iis7 压缩js文件和启用gzip压缩
压缩js文件 打开IIS 7的配置文件:c:\windows\system32\inetsrv\config\applicationhost.config 在<staticContent loc ...
- C# 模拟登陆并继续访问其他页面
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Net;usi ...
- Scalaz(48)- scalaz-stream: 深入了解-Transducer: Process1-tee-wye
在上一篇讨论里我们介绍了Source,它的类型款式是这样的:Process[F[_],O].Source是通过await函数来产生数据流.await函数款式如下: def await[F[_], A, ...
- Scalaz(2)- 基础篇:随意多态-typeclass, ad-hoc polymorphism
scalaz功能基本上由以下三部分组成: 1.新的数据类型,如:Validation, NonEmptyList ... 2.标准scala类型的延伸类型,如:OptionOps, ListOps . ...
- CnBlogs自定义博客样式
弄了半个晚上的时间,总算马马虎虎搞好了博客的样式. 整个博客是蓝色的基调,比较激情,我喜欢. 比较郁闷的是,rightmenu 和 main都是position:absolute 布局的.要添加一个f ...