动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

JavaScript调用Web Service

04-28 10:41 988浏览
举报 T字号
  • 大字
  • 中字
  • 小字

通过之前的学习我们知道Web Service是跨平台性的,Web Service平台是用XSD来作为数据类型系统的。你可以使用各种语言比如java或者JavaScript来调用Web Service,本文我们就来讲讲如何使用JavaScript调用Web Service。

1.新建项目

新建一个WebApplication项目,取默认设置。

2.在项目中添加WebService.asmx文件

然后就在其中写入方法,上代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
 
/// <summary>
///WebService 的摘要说明
/// </summary>
 [WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
 //若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 
 [System.Web.Script.Services.ScriptService]
 public class WebService : System.Web.Services.WebService
 {
    public WebService()
    {
 
         //如果使用设计的组件,请取消注释以下行 
        //InitializeComponent(); 
     }
    [WebMethod]
     public string HelloWorld()
    {
        return "Hello World";
     }
    [WebMethod]
     public string HelloWorld(string message)
     {
        return message;
    }
 
 }

3.创建一个WebService

你可以使用各种方式创建一个WebService,这里使用java创建一个简单的WebService,代码如下:

package com.roulandu.webservice;

import javax.jws.WebService;
import javax.xml.ws.Endpoint;

@WebService
public class Test {
    public String Hello(){

        return "Hello World!!";

    }

    public static void main(String[] args){
        Endpoint.publish("http://localhost:51223/Service/test", new Test());//这个地址可以随便改个没占用的端口,也可以发布到云端
        System.out.println("publish success!!~~~");
    }

}

这里必须保证类中存在一个非静态方法,不然会报错,静态方法和final方法不会被发布,控制台输出 “publish success!!~~~” 则发布成功。

接下来我们就可以查看自己发布的WebService了,浏览器输入之前的发布地址+?wsdl ,然后就可以看到我们的WebService是否发布成功了。

4.创建一个页面,实现JS调用Web服务

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

    <title></title>
</head>
<body>
<script type="text/javascript">
     function RequestWebService() {
        var data;
        //SOAP 1.1 请求报文格式,1.2在网上可以找到
        data = '<?xml version="1.0" encoding="utf-8"?>'; 
        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/">'; 
        data = data + '<soap:Body>'; 
        data = data + '<Hello xmlns="http://webservice.roulandu.com/">';//这里就是发布的方法名和xml文档中的命名空间地址(图中画线部分)
        data = data + '</Hello>';
        data = data + '</soap:Body>'; 
        data = data + '</soap:Envelope>'; 

        var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
        var URL="http://localhost:51223/Service/test?wsdl";
        xmlhttp.Open("POST",URL, false); 
        xmlhttp.SetRequestHeader ("Content-Type","text/xml; charset=utf-8"); //SOAP 1.1为text/xml ; 1.2为 application/soap+xml
        xmlhttp.Send(data); 
        alert(data);//SOAP请求报文格式

        var text = xmlhttp.responseText;

        alert('结果'+'\n'+text); //SOAP响应报文格式
        document.getElementById("data").innerHTML = text;

    }
</script>
    <input type="button" value="test" onclick="RequestWebService()"></input>
    <p id="data"></p>
</body>
</html>

5.测试

打开浏览器进行测试,如果页面显示正常则表示JavaScript调用Web Service成功。

上述过程就是JavaScript调用Web Service的大概流程,会有一些细枝末节的东西没能介绍到位,小伙伴们可以在动力节点在线的Web Service视频课程中查漏补缺,除此之外,也可以选择其他的Java知识来学习,充实自己。

0人推荐
共同学习,写下你的评论
0条评论
代码小兵498
程序员代码小兵498

153篇文章贡献528999字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

JavaWeb的3大组件

代码小兵49806-11 15:28

全面解析Cookie技术

代码小兵49806-11 15:51

浅谈JavaWeb架构演变

代码小兵49806-11 16:22

探讨Web开发中的Session存储与管理

代码小兵51603-29 17:28

JavaScript基础知识

 暴风城-小飞04-06 20:49

发评论

举报

0/150

取消