Java使用SOAP获取webservice实例解析
来源:互联网 发布:电脑文件恢复软件 编辑:程序博客网 时间:2024/06/13 13:44
http://www.cnblogs.com/linjiqin/archive/2012/05/07/2488880.html
1.webservice提供方:http://www.webxml.com.cn/zh_cn/index.aspx
2.下面我们以“获得腾讯QQ在线状态”为例。
参数截图如下图:
SOAP 1.1
以下是 SOAP 1.2 请求和响应示例。所显示的占位符需替换为实际值。
[http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?op=qqCheckOnline] 点击前面的网址,查看对应参数信息。
3.Java程序
package junit;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.io.UnsupportedEncodingException;import java.net.HttpURLConnection;import java.net.URL;import org.junit.Test;public class JxSendSmsTest { /** * 获得腾讯QQ在线状态 * * 输入参数:QQ号码 String,默认QQ号码:8698053。返回数据:String,Y = 在线;N = 离线;E = QQ号码错误;A = 商业用户验证失败;V = 免费用户超过数量 * @throws Exception */ @Test public void sendSms() throws Exception { String qqCode = "416501600";//qq号码 String urlString = "http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx"; String xml = JxSendSmsTest.class.getClassLoader().getResource("SendInstantSms.xml").getFile(); String xmlFile=replace(xml, "qqCodeTmp", qqCode).getPath(); String soapActionString = "http://WebXml.com.cn/qqCheckOnline"; URL url = new URL(urlString); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); File fileToSend = new File(xmlFile); byte[] buf = new byte[(int) fileToSend.length()]; new FileInputStream(xmlFile).read(buf); httpConn.setRequestProperty("Content-Length", String.valueOf(buf.length)); httpConn.setRequestProperty("Content-Type", "text/xml; charset=utf-8"); httpConn.setRequestProperty("soapActionString", soapActionString); httpConn.setRequestMethod("POST"); httpConn.setDoOutput(true); httpConn.setDoInput(true); OutputStream out = httpConn.getOutputStream(); out.write(buf); out.close(); byte[] datas=readInputStream(httpConn.getInputStream()); String result=new String(datas); //打印返回结果 System.out.println("result:" + result); } /** * 文件内容替换 * * @param inFileName 源文件 * @param from * @param to * @return 返回替换后文件 * @throws IOException * @throws UnsupportedEncodingException */ public static File replace(String inFileName, String from, String to) throws IOException, UnsupportedEncodingException { File inFile = new File(inFileName); BufferedReader in = new BufferedReader(new InputStreamReader( new FileInputStream(inFile), "utf-8")); File outFile = new File(inFile + ".tmp"); PrintWriter out = new PrintWriter(new BufferedWriter( new OutputStreamWriter(new FileOutputStream(outFile), "utf-8"))); String reading; while ((reading = in.readLine()) != null) { out.println(reading.replaceAll(from, to)); } out.close(); in.close(); //infile.delete(); //删除源文件 //outfile.renameTo(infile); //对临时文件重命名 return outFile; } /** * 从输入流中读取数据 * @param inStream * @return * @throws Exception */ public static byte[] readInputStream(InputStream inStream) throws Exception{ ByteArrayOutputStream outStream = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = 0; while( (len = inStream.read(buffer)) !=-1 ){ outStream.write(buffer, 0, len); } byte[] data = outStream.toByteArray();//网页的二进制数据 outStream.close(); inStream.close(); return data; }}
4、SendInstantSms.xml文件如下,放在src目录下
<?xml version="1.0" encoding="utf-8"?><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/"> <soap:Body> <qqCheckOnline xmlns="http://WebXml.com.cn/"> <qqCode>qqCodeTmp</qqCode> </qqCheckOnline> </soap:Body></soap:Envelope>
0 0
- Java使用SOAP获取webservice实例解析
- Java使用SOAP获取webservice实例解析
- Java使用SOAP获取webservice实例解析
- Java使用SOAP获取webservice实例解析
- Java使用SOAP获取webservice实例解析
- Java使用SOAP获取webservice实例解析
- Java使用SOAP获取webservice实例解析
- Java使用SOAP获取webservice实例解析
- Java使用SOAP获取webservice实例解析
- Java使用SOAP获取webservice实例解析
- C#使用SOAP获取webservice实例解析
- 使用CXF 开发SOAP webservice 服务端实例
- java调用webservice天气预报(SOAP请求的方式获取天气信息并解析返回的XML)
- java调用webservice天气预报(SOAP请求的方式获取天气信息并解析返回的XML)
- java调用webservice天气预报(SOAP请求的方式获取天气信息并解析返回的XML)
- Soap WebService +pull解析
- 使用SOAP开发Java Webservice详解
- java使用soap方式简单实现webservice
- PHP PSR-1 基本代码规范(中文版)
- NodeJS实战——创建基础应用并应用模板引擎
- UILabel 添加下划线,改变字体颜色,NSMutableAttributedString实现富文本
- struts2上传类型、大小限制以及国际化的问题
- 【bzoj1877】【SDOI2009】【晨跑】【费用流】
- Java使用SOAP获取webservice实例解析
- Viewpager的PageTransformer 不执行问题
- ORA-01861: 文字与格式字符串不匹配
- 定时器
- spring-data-jpa Specification 拼接复杂查询
- JNI学习积累之二 ---- 数据类型映射、域描述符说明
- 企业Linux系统管理员常用命令大全实例解析(2)
- caffe Data layer prefetch queue empty重启
- 71道经典Android面试题和答案,重要知识点都包含了