如何直接soap字符串,访问webservice

2019独角兽企业重金招聘Python工程师标准>>> hot3.png


1.Webservice.GetVcardByUserNo(String userId,String userNo);这个是封装了的webservice接口。
2.在程序中连续两次调用该接口时,ksoap2在解析第二次调用返回的结果时抛异常。
    异常信息如下:org.xmlpull.v1.XmlPullParserException: unexpected type (position:END_DOCUMENT null@1:0 in java.io.InputStreamReader@4383bf38) 
3.打断点调试时,不会出现该异常。

4.无奈之下使用android 的HttpURLConnection 直接调用webservice接口,直接使用时不会发生以上异常,所以使用ksoap2 访问webservice需要设置什么呢?

5.使用HttpUrlConnection访问webserivice代码如下:

(一)连接webservice

String ServerUrl="webservice地址";
 String soapAction="http://www.v_card.net.cn/PhoneClient/GetVcardJson";

 String data="";

String requestData="<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n"+
"<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\r\n"
  +"<soap:Header>\r\n"+
    "<AuthHeader xmlns=\"http://www.v_card.net.cn/PhoneClient/\">\r\n"+
     "<UserId>"+userID+"</UserId>\r\n"+
    "</AuthHeader>\r\n"+
  "</soap:Header>\r\n"+
  "<soap:Body>\r\n"+
    "<GetVcardJson xmlns=\"http://www.v_card.net.cn/PhoneClient/\">\r\n"+
      "<vcardUserNo>"+userNo+"</vcardUserNo>\r\n"+
    "</GetVcardJson>\r\n"+
  "</soap:Body>\r\n"+

"</soap:Envelope>";

try{
URL url =new URL(ServerUrl);
HttpURLConnection con=(HttpURLConnection)url.openConnection();
byte[] bytes=requestData.getBytes("utf-8");
con.setDoInput(true);
con.setDoOutput(true);
con.setUseCaches(false);
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "text/xml;charset=utf-8");
con.setRequestProperty("SOAPAction",soapAction);
con.setRequestProperty("Content-Length",""+bytes.length);
OutputStream outStream=con.getOutputStream();
outStream.write(bytes);
outStream.flush();
outStream.close();
InputStream inStream=con.getInputStream();

data=parser(inStream);

(二)解析返回的数据

private static String parser(InputStream in){
XmlPullParser parser=Xml.newPullParser();
String data="";
try{
int flag=0;
parser.setInput(in, "utf-8");
int evenType=parser.getEventType();
while(evenType!=XmlPullParser.END_DOCUMENT){
switch(evenType){
case XmlPullParser.START_DOCUMENT:break;
case XmlPullParser.START_TAG:
break;
case XmlPullParser.TEXT:
data=parser.getText();
break;
case XmlPullParser.END_TAG:break;
}
parser.next();
evenType=parser.getEventType();
}

}catch(XmlPullParserException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
return data;
}

转载于:https://my.oschina.net/davidjianl/blog/36816

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

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

相关文章

百度对301的反应

http://www.admin5.com/article/20111228/400200.shtml转载于:https://www.cnblogs.com/tonykan/archive/2012/12/04/2801449.html

《哈利波特》电影全集+有声书免费领取!带你重返儿时魔法世界……

全世界只有3.14 % 的人关注了爆炸吧知识说到哈利波特系列&#xff0c;几乎人人皆知&#xff0c;享誉世界&#xff0c;风靡全球的哈利波特究竟有什么无穷魔力呢&#xff1f;《哈利波特》是英国作家JK罗琳的魔幻文学系列小说&#xff0c;共7集&#xff0c;其中前六部以霍格沃茨魔…

.NET6下周发布真的香,可不少人却只会.NET Framework!

倒计时7天&#xff0c;.NET6VS2022C#10将同时发布正式版&#xff0c;宣告.NET步入全新篇章&#xff0c;各种新语法、新框架、新技术都如约而至&#xff0c;令人期待&#xff01;近年来&#xff0c;.NET跨平台持续推出新版本&#xff0c;开源社区也不断涌现各种优秀框架&#xf…

oracle 选择最频繁出现之前,5文章数据

SELECT* FROM(SELECTPROJECT_LISTING.MATERIAL,COUNT (*) AS "出现次数"FROMPROJECT_LISTINGWHEREPROJECT_LISTING.MATERIAL IS NOT NULLGROUP BYPROJECT_LISTING.MATERIALORDER BYCOUNT (*) DESC) WHERE ROWNUM < 5ORDER BYCOUNT (*) DESC 是关键排序COUNT (*)…

java 继承 子类 实例化_关于Java继承中父类和子类构造函数的问题

Java子类在实例化时默认调用的是父类的无参构造函数&#xff0c;不论实例化时调用的是子类的有参还是无参构造函数&#xff0c;1、当父类没有显式定义构造方法时&#xff0c;编辑器会默认为此类添加一个隐式无参构造函数。此时子类可以有自己的无参和有参构造方法。不论实例化时…

收缩临时表空间

当排序操作、重建索引等大型操作无法在内存中完成时&#xff0c;临时表空间将为排序提供便利。一般情况下临时表空间为多个用户&#xff0c;多个会话所共 享。不能为会话分批空间配额。临时表空间耗用过度且在不能自动扩展的情形下将收到“ORA-1652:unable to extend temp segm…

v4L2编程

v4L2编程 v4L2是针对uvc免驱usb设备的编程框架&#xff0c;主要用于采集usb摄像头等&#xff0c;编程模式如下&#xff1a; 一&#xff0e;设置采集方式 打开视频设备后&#xff0c;可以设置该视频设备的属性&#xff0c;例如裁剪、缩放等。这一步是可选的。在Linux编程中&…

java环境怎样搭建_如何学习JAVA?怎么搭建JAVA环境?怎么安装JDK?

JAVA在学习JAVA前&#xff0c;我们必须了解并搭建好JAVA所需的开发环境&#xff0c;要让你写代码能让机器听得懂并执行&#xff0c;JDK(Java Developers Kits)自然是是必须的安装JDK前的准备首先我们要先知道自己的电脑系统是几位版本的&#xff0c;右键”此电脑“点击菜单里的…

神奇的机械动态图,看了一遍又一遍!最后一个真神奇~

全世界只有3.14 % 的人关注了爆炸吧知识神奇的机械科技动态图&#xff0c;看了一遍又一遍&#xff01;最后一个真神奇&#xff5e;▲金属切割的慢镜头&#xff0c;美&#xff01;▲齿轮变速原理演示▲塑料成型机器▲切丝的食品机器▲螺旋状的通心粉制造▲高温融化锁的过程▲一次…

Envoy实现.NET架构的网关(三)代理GRPC

.NET网关与Gateway实战-Envoy与kong课程Envoy实现.NET架构的网关&#xff08;一&#xff09;静态配置与文件动态配置Envoy实现.NET架构的网关&#xff08;二&#xff09;基于控制平面的动态配置什么是GRPCgRPC是一种与语言无关的高性能远程过程调用 (RPC) 框架。gRPC 的主要好处…

Linux 下用来查询安装包信息的RPM选项

Linux 下用来查询安装包信息的RPM选项RPM是RedHat的包管理器&#xff0c;用来安装、卸载、升级和查询基于RedHat Linux的安装包。RHEL和基于它的系统使用rpm命令来完成这些功能。AD&#xff1a;RPM是RedHat的包管理器&#xff0c;用来安装、卸载、升级和查询基于RedHat Linux的…

C#_空值判断

(1) nullnull 关键字是表示不引用任何对象的空引用的文字值。null 是引用类型变量的默认值。那么也只有引用型的变量可以为null &#xff0c;如果 int inull,的话&#xff0c;是不可以的&#xff0c;因为Int是值类型的。(2)""、String.Empty、String.Length 0 这两个…

如何用Java讲一句话重复五遍_Java 0515 第二次课作业

import java.util.*;public class Work_01 {public static void main(String[] args) {Scanner scan new Scanner(System.in);System.out.println("上午是否合格?");String judge scan.next();//输入是否while(!"是".equals(judge)){//用equals方法判断…

C专家编程复习摘要一

一、关于类型转换 K&R C的不说了&#xff0c;说了还容易混淆&#xff0c;只说ANSI C的&#xff1a; 如果其中一个操作数的类型是unsigned long int&#xff0c;那么另外一个操作数也被转换为unsigned long int。其次其中一个操作数的类型是long int&#xff0c;而另一个操作…

一张图看懂华为计算全联接2020

全世界只有3.14 % 的人关注了爆炸吧知识END◆ 推荐阅读 ◆点击下方图片即可阅读华为邓泰华&#xff1a;让每一位开发者的智慧汇聚成全生态创新&#xff0c;共同点亮多样性计算新时代左右滑动查看更多☟

独立开发一个云(PaaS)的核心要素, Go, Go, Go!!!

最近一年的工作&#xff0c;有很大的比重在做云平台的事情&#xff0c;简单来说&#xff0c;就是为公司内用户提供一个PaaS&#xff0c;用户可以在我们的云平台上方便的将单机服务程序扩展为多实例程序&#xff0c;以平台服务化的方式对外提供。在这里简单分享一下。 首先简单说…

C# 使用Timer控件设置时间间隔

Timer 控件可以定期引发事件&#xff0c;该控件是为 Windows 窗体环境设计的。时间间隔的长度由 Interval 属性定义&#xff0c;其值以毫秒为单位。若启用了该组件&#xff0c;则每个时间间隔引发一个 Tick 事件&#xff0c;在该事件中添加要执行的代码。如图1 所示为 Timer 控…

mysql分析工具

今儿上课的时候老师讲到一个mysql的分析工具&#xff0c;我才恍然大悟记起上次去新浪笔试的一道题大概的意思好像就是说&#xff1a;抓出服务器中最耗费时间的sql语句。当时就蒙了根本不懂这些。 MySQL Slow Log 分析工具 mysqldumpslow - mysql官方提供的慢查询日志分析工具my…

编写java的应用_编写Java应用程序

import javax.swing.JOptionPane;public class Account //账户类{private String name; //储户姓名private double balance; //账户余额public Account(String name,double balance){this.name name;this.balance balance;}public String getName() //返回账户名{return name;…

vijos p1347(最大乘积(整数划分?))(25—100分)

跟数的划分有些类似&#xff0c;递归记忆化搜索&#xff0c; 做过数的划分的人做这道题目应该不是很难。 http://www.cnblogs.com/zyxx233/archive/2012/12/08/2809187.html 这是数的划分题解 同样的&#xff0c;我还是以haha来作为函数.....&#xff08;个人癖好&#xff09; …