使用ajax和urlconnection方式调用webservice服务
<html>
<head>
<title>使用ajax方式调用webservice服务</title>
<script>
var xhr = new XMLHttpRequest();
function sendAjax(){
var url = "http://192.168.13.66:8080/hello";//webservice服务的地址
var requestBody = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" ' + 'xmlns:q0="http://service.demo.cn/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ' + 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'+
'<soapenv:Body><q0:sayHi> <arg0>xiaoming</arg0></q0:sayHi></soapenv:Body></soapenv:Envelope>';//构造请求体,符合soap协议规范 //打开连接
xhr.open("POST",url,true); //重新设置请求头
xhr.setRequestHeader("content-type","text/xml;charset=UTF-8"); //指定回调函数
xhr.onreadystatechange = _back; //发送请求
xhr.send(requestBody);
} //定义回调函数
function _back(){
if(xhr.readyState == 4){
if(xhr.status == 200){
//获取服务器的响应数据
var ret = xhr.responseXML;
var ele = ret.getElementsByTagName("return")[0];
alert(ele.textContent);
}
}
}
</script>
</head>
<body>
<input type="button" value="使用ajax方式调用webservice服务" onclick="sendAjax();">
</body>
</html>
requestBody 请求体,可以通过myeclipse自带插件,点击go以后,下边的请求体就是我们想要的格式。 二,使用urlconnection方式
package cn.demo.client.urlconnection; import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection; /**
* 使用urlconnection方式调用webservice服务
* @author zhaoqx
*
*/
public class App {
public static void main(String[] args) throws Exception {
URL wsUrl = new URL("http://192.168.13.66:8080/hello");
HttpURLConnection conn = (HttpURLConnection) wsUrl.openConnection(); //构造请求体
String requestBody = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" " +
"xmlns:q0=\"http://service.demo.cn/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" "+
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">"+
"<soapenv:Body><q0:sayHi><arg0>xiaoming</arg0></q0:sayHi></soapenv:Body></soapenv:Envelope>";
//设置请求的参数
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("content-type", "text/xml;charset=UTF-8"); //向服务端写数据
conn.getOutputStream().write(requestBody.getBytes()); int responseCode = conn.getResponseCode();
if(responseCode == 200){
//使用输入流获取服务端响应数据
InputStream in = conn.getInputStream();
byte[] b = new byte[1024];
int len = 0;
StringBuffer sb = new StringBuffer();
while((len = in.read(b)) != -1){
String s = new String(b, 0, len,"UTF-8");
sb.append(s);
}
System.out.println(sb.toString());
in.close();
} }
}
使用ajax和urlconnection方式调用webservice服务的更多相关文章
- 【Java EE 学习 80 下】【调用WebService服务的四种方式】【WebService中的注解】
不考虑第三方框架,如果只使用JDK提供的API,那么可以使用三种方式调用WebService服务:另外还可以使用Ajax调用WebService服务. 预备工作:开启WebService服务,使用jd ...
- ajax调用webservice服务
ajax调用是 html方向调用的, 而sqlconnection是 java代码调用的,本质差不多 <html> <head> <title>通过ajax调用we ...
- sqlconnection 调用webservice服务
package cn.itcast.service.urlconnection; import java.io.InputStream; import java.io.OutputStream; im ...
- C#调用WebService服务(动态调用)
原文:C#调用WebService服务(动态调用) 1 创建WebService using System; using System.Web.Services; namespace WebServi ...
- Java调用WebService方法总结(9,end)--Http方式调用WebService
Http方式调用WebService,直接发送soap消息到服务端,然后自己解析服务端返回的结果,这种方式比较简单粗暴,也很好用:soap消息可以通过SoapUI来生成,也很方便.文中所使用到的软件版 ...
- WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载]
原文:WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载] 我们有两种典型的WCF调用方式:通过SvcUtil.exe(或者添加Web引用)导入发布的服务元数据生成服务代理相关的代码 ...
- Post方式调用wcf服务
我们平常在PC端调用WCF服务,只要知道WCF服务的地址,客户端直接添加引用服务就可以使用了,殊不知还有其他方式,其实,我们也可以 通过HTTP POST的方式调用WCF服务,这样就不用添加引用了,在 ...
- 问题:C#调webservice超时;结果:C#调用webservice服务超时
C#调用WebService服务时,报错,The operation has timed out,意思是“操作超时”. 方法/步骤 首先修改服务端配置 WebService服务所在站点为服务端,它提供 ...
- C# - VS2019 WinFrm应用程序调用WebService服务
WinFrm应用程序调用WebService服务 关于WebService的创建.发布与部署等相关操作不再赘述,传送门如下:C# VS2019 WebService创建与发布,并部署到Windows ...
随机推荐
- JVM参数设置、分析
不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM.GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java ...
- Json 使用小结
关于Json: content={ news_item=[ { title=a, digest=tan for test, content=just for test, content_source_ ...
- buildroot 重新编译 package
/************************************************************************* * buildroot 重新编译 package ...
- neovim的新体验
A. 缘由 vim下的CtrlP插件好用,但是当文件较多时,不能很快检索,时有卡死的情况发生.听说neovim引入了很多新的功能,例如异步处理,job管理等. B. 安装neovim1. Ubunt ...
- python3 流程控制
表达式if ... else >>> if 3 > 4: ... print('False') ... else: ... print('True') ... True 表达式 ...
- UIColor,CGColor,CIColor三者间的区别和联系
一.UIColor UIColor是UIKit中存储颜色信息的一个重要的类,一个UIColor对象包含了颜色和透明度的值,它的颜色空间已经针对IOS进行了优化.UIColor包含了一些类方法用于创建一 ...
- python中的二维数组90度旋转
data=[[col for col in range(4)] for raw in range(4)] #创建一个二维数组 for n in data: print (n) print('\n') ...
- 第 2 章 Node.js 中的交互式运行环境 —— REPL
本章内容包括: 如何使用REPL运行环境以及如何在该运行环境中测试各种JavaScript表达式. 如何定义并启动REPL运行环境. Node.js 框架中为REPL运行环境提供了哪些命令以及这些命令 ...
- drag
1.draggable ="true" 元素可以拖拽了 2.拖拽元素事件: dragstart 拖拽前触发 drag 拖拽前.拖拽结束之间,连续触发 dragend 拖拽结束触 ...
- 用yum源安装Nginx
1.在/etc/yum.repos.d/目录下创建一个源配置文件nginx.repo: cd /etc/yum.repos.d/ vi nginx.repo 填写如下内容: [nginx] name= ...