使用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();
        }

    }
}
时间: 2024-08-11 05:46:11

使用ajax和urlconnection方式调用webservice服务的相关文章

【Java EE 学习第80天】【调用WebService服务的四种方式】

不考虑第三方框架,如果只使用JDK提供的API,那么可以使用三种方式调用WebService服务:另外还可以使用Ajax调用WebService服务. 预备工作:开启WebService服务,使用jdk命令wsimport生成调用源代码 package com.kdyzm.ws; import javax.jws.WebService; import javax.xml.ws.Endpoint; @WebService public class MyWsServer { public Strin

ajax调用webservice服务

ajax调用是 html方向调用的, 而sqlconnection是 java代码调用的,本质差不多 1 <html> 2 <head> 3 <title>通过ajax调用webservice服务</title> 4 <script> 5 var xhr; 6 function sendAjaxWS(){ 7 xhr = new ActiveXObject("Microsoft.XMLHTTP"); 8 //指定ws的请求地址

sqlconnection 调用webservice服务

1 package cn.itcast.service.urlconnection; 2 3 import java.io.InputStream; 4 import java.io.OutputStream; 5 import java.net.HttpURLConnection; 6 import java.net.URL; 7 import java.net.URLConnection; 8 9 /** 10 * 通过UrlConnection调用Webservice服务 11 * 12

java axis调用WebService 服务端,客户端

服务端: 1.Calculator package ws; public class Calculator { public int add(int a, int b) { return (a + b); } public int subtract(int a, int b) { return (a - b); } public int multiply(int a, int b) { return (a * b); } public int divide(int a, int b) { ret

C#调用WebService服务(动态调用)

原文:C#调用WebService服务(动态调用) 1 创建WebService using System; using System.Web.Services; namespace WebService1 { /// <summary> /// Service1 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/", Description="测试服务")] [

Post方式调用wcf服务

我们平常在PC端调用WCF服务,只要知道WCF服务的地址,客户端直接添加引用服务就可以使用了,殊不知还有其他方式,其实,我们也可以 通过HTTP POST的方式调用WCF服务,这样就不用添加引用了,在手机移动端开发后台服务,都是通过Post的形式调用WCF服务,当然,这种方式在PC也可以使用. 我们来看下面的一个简单示例.下面的示例演示了服务器端和客户端的简单通讯 服务器端返回一个JSON字符串,代码如下 契约定义 [csharp] view plaincopy [OperationContra

WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载]

原文:WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载] 我们有两种典型的WCF调用方式:通过SvcUtil.exe(或者添加Web引用)导入发布的服务元数据生成服务代理相关的代码和配置:通过ChannelFactory<TChannel>创建服务代理对象.在这篇文章中,我们采用一种独特的方式进行服务的调用.从本质上讲,我们只要能够创建于服务端相匹配的终结点,就能够实现正常的服务调用.在WCF客户端元数据架构体系中,利用MetadataExchangeClient可以获取服

使用ASP.NET AJAX 从脚本中调用Web 服务的应用方法

技能点:通过编写WebService,在页面js中调用WebService来进行数据查询. 网站开发,有些时候需要使用js在页面动态生成一些内容,但还有些数据要通过查询数据库才能获取的. 但由于诸如主键id等一些关键数据在后台不易获取,或在后台获取数据后不易直接在前台通过js使用. 这种情况下,使用js+ajax的方式来实现,效果也是不错的. 1.编写webservice: 1 using System; 2 using System.Collections.Generic; 3 using S

FineReport中以jws方式调用WebService数据源方案

在使用WebService作为项目的数据源时,希望报表中也是直接调用这个WebService数据源,而不是定义数据连接调用对应的数据库表,这样要怎么实现呢? 在程序中访问WebService应用服务,将WebService返回的数据转为程序数据集,然后在设计器中调用. 以axis1.4上的WebService为例,介绍其取数方式以及将数据转换为WebService的程序数据集的过程. WebService应用服务 如在Tomcat下的Axis工程中以jwa方式发布了一个WebService应用服