码迷,mamicode.com
首页 > 编程语言 > 详细

java 调用 WebService

时间:2015-07-27 09:20:38      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:

一、wximport自动生成代码

wsimport -keep -p com.test.client http://localhost:8080/test/services/TestService?wsdl

 

-d:生成客户端执行类的class文件的存放目录
-s:生成客户端执行类的源文件的存放目录
-p:定义生成类的包名

 

二、通过ajax调用(不支持跨域调用)

技术分享
 1 function callAxisWsPost(method, variable, value, url, _Namespace, callback, loadProcess) {
 2                 function getlen(str) {
 3                     var bytesCount = 0;
 4                     for (var i = 0; i < str.length; i++) {
 5                         var c = str.charAt(i);
 6                         if (/^[\u0000-\u00ff]$/.test(c))   //匹配双字节
 7                         {
 8                             bytesCount += 1;
 9                         }
10                         else {
11                             bytesCount += 2;
12                         }
13                     }
14                     return bytesCount;
15                 }
16 
17                 var xmlhttp = null;
18                 if (window.ActiveXObject) {
19                     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
20                 } else if (window.XMLHttpRequest) {
21                     xmlhttp = new XMLHttpRequest();
22                 }
23                 var data;
24                 data = ‘<?xml version="1.0" encoding="utf-8"?>‘;
25                 data = data + ‘<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/">‘;
26                 data = data + ‘<soap:Body>‘;
27                 data = data + ‘<‘ + method + ‘ xmlns="‘ + _Namespace + ‘">‘;
28                 for (var i = 0; i < variable.length; i++) {
29                     data = data + ‘<‘ + variable[i] + ‘>‘ + value[i] + ‘</‘ + variable[i] + ‘>‘;
30 
31                 }
32                 data = data + ‘</‘ + method + ‘>‘;
33                 data = data + ‘</soap:Body>‘;
34                 data = data + ‘</soap:Envelope>‘;
35                 xmlhttp.onreadystatechange = function () {
36                     if (xmlhttp.readyState == 1) {
37                         if (loadProcess)
38                             loadProcess();
39                     }
40                     if (xmlhttp.readyState == 4) {
41                         if (xmlhttp.status == 200) {
42                             if (callback)
43                                callback(xmlhttp.responseText);
44                         }
45                     }
46                 }
47 
48                 xmlhttp.Open("POST", url, true);
49                 xmlhttp.SetRequestHeader("Content-Type", "text/xml; charset=utf-8");
50                 xmlhttp.SetRequestHeader("Content-Length", getlen(data));
51                 xmlhttp.SetRequestHeader("SOAPAction", _Namespace + method);
52                 xmlhttp.Send(data);
53             }
View Code

 

三、通过URL Connection调用

技术分享
 1 private  StringBuffer urlConnectionPost(String tourl,StringBuffer data) {
 2         StringBuffer sb = null;
 3         BufferedReader reader = null;
 4         OutputStreamWriter wr = null;
 5         URL url;
 6         try {
 7             url = new URL(tourl);
 8             URLConnection conn = url.openConnection();
 9             conn.setDoOutput(true);
10             conn.setConnectTimeout(1000 * 5);
11             
12             //当存在post的值时,才打开OutputStreamWriter
13             if(data!=null && data.toString().trim().length()>0){
14                 wr = new OutputStreamWriter(conn.getOutputStream(),"UTF-8");
15                 wr.write(data.toString());
16                 wr.flush();
17             }
18            
19             // Get the response
20             reader = new BufferedReader(new InputStreamReader(conn
21                     .getInputStream(),"UTF-8"));
22             sb = new StringBuffer();
23             String line = null;
24             while ((line = reader.readLine()) != null) {
25                 sb.append(line + "/n");
26             }
27         } catch (IOException e) {
28             // TODO Auto-generated catch block
29             e.printStackTrace();
30         }finally{
31             try {
32                 if(wr!=null){
33                     wr.close();
34                 }
35                 if(reader!=null){
36                     reader.close();
37                 }
38             } catch (IOException e) {
39                 // TODO Auto-generated catch block
40                 e.printStackTrace();
41             }            
42         }
43         return sb;
44     }
View Code

四、通过HttpClient调用                          

转载:http://blog.csdn.net/bhq2010/article/details/9210007

 

基于浏览器的测试工具(RESTClient)

 组件附加地址:https://addons.mozilla.org/zh-CN/firefox/addon/restclient/

技术分享

 

java 调用 WebService

标签:

原文地址:http://www.cnblogs.com/Nadim/p/4648145.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!