如何用纯文本方式(XML)+HTTP协议调用Workday的web service?

原创 2015年05月31日 23:56:37

我们知道,Workday系统本身很复杂,其发布的web服务(web service)也很多,而且其中的Web 服务(web service)中定义的Schema也很复杂。如果用AXIS或者XFire生成存根代码调用其相应模块的web service,比如Human Resource模块,也可以,但是生成的存根代码比较复杂,而且Workday的web服务本身也在不断的升级过程中,在升级的过程中,其Schema的信息也在不断变化和调整过程中,那么有没有一种以不变应万变的方式,答案是肯定的。那就是通过,用纯文本方式(XML)+HTTP协议调用Workday的web service。下面咱们就以调用员工查找的操作方法为例子(Employee Find), 看其存文本的代码例子如何编写?其总共分成两部分:

(1) web service的权限认证

其中假设其用户名名为:test @test

密码为:xxxxxxx 

则其消息头部分为:

< env:Header >
                < wsse:Security xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/"
                        xmlns:wsse = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
                        soapenv:mustUnderstand = "1" >
                        < wsse:UsernameToken >
                                < wsse:Username >test @test </ wsse:Username >
                                < wsse:Password Type = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText" > Password:  xxxxxxx </ wsse:Password >
                        </ wsse:UsernameToken >
                </ wsse:Security >
        </ env:Header >
<? xml version = "1.0" encoding = "UTF-8" ?>
< env:Envelope xmlns:env = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd = "http://www.w3.org/2001/XMLSchema" >
    < env:Header >
        < wsse:Security
            xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/"
            xmlns:wsse = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
            soapenv:mustUnderstand = "1" >
            < wsse:UsernameToken >
                < wsse:Username > test @test </ wsse:Username >
                < wsse:Password
                    Type = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText" > xxxxxxx </ wsse:Password >
            </ wsse:UsernameToken >
        </ wsse:Security >
    </ env:Header >

(2) web service的消息体部分,调用Employee_Find操作

  < env:Body >
    < wd:Employee_Find xmlns:wd = "urn:com.workday/bsvc" wd:version = "v22.1" >
    </ wd:Employee_Find >
  </ env:Body >

(3)找任何一个HTTP第三方发送工具(或者自己写一个HTTP发送程序),把上面(1)和(2)的信息,作为HTTP的消息体,发送出去,即可得到查询结果。


版权声明:本文为博主原创文章,未经博主允许不得转载。

Android----用HTTP的get,post,HttpClient三种方式向web service提交文本数据

/**  * HTTP请求  * @author kesenhoo  *  */ public class HttpRequest {   public static boolean ...

C#使用Http Post方式传递Json数据字符串调用Web Service

引言   前段时间一直在做一个ERP系统,随着系统功能的完善,客户端(CS模式)变得越来越臃肿。现在想将业务逻辑层以下部分和界面层分离,使用Web Service来做。由于C#中通过直接添加引用...

ABAP利用HTTP调用要用户验证的web service

ABAP调用web service的常用方式有两种, 一、采用proxy object调用,步骤如下: 1.sm59创建remote destination 2.sproxy创建proxy ob...

详解 Web service Axis2 JAVA调用.net接口 返回String的xml格式数据

import java.sql.Connection; import java.text.SimpleDateFormat; import java.util.Date; import javax....

Jquery的Ajax调用Web service的function返回xml格式的数据集

之前有整理过,今天特地做了关于返回xml格式数据集呈现到html的table里面 下面就直接贴代码,大家只需要改想对应的地方就可以直接用, 下面例子是返回两列数据,并在table呈现出来 ...
  • cheug
  • cheug
  • 2012年07月31日 13:29
  • 1111

.net web service 调用的几种方式

首先当然是开发一个webservice,我们来个简单的计算器的实现,代码如下 [c-sharp] view plain copy using Sys...

JAVA 使用httpclient、XFire方式调用Web Service的方法

1.使用HttpClient方式用到的jar文件: commons-httpclient-3.0.jar commons-codec-1.3.jar commons-logging-1.1.1....

Web Service的几种调用方式

Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布...
  • ljx1204
  • ljx1204
  • 2016年08月24日 17:29
  • 3233

CXF3.0.4客户端调用Web service来获取服务的三种方式

服务端的代码请看我的另一篇文章:点击打开链接 首先必须要有一个可用的WSDL服务地址,这个地址有我们需要调用的方法,将地址复制到浏览器地址栏,看测试能否通过。 方式一: 配置CXF环境变量,用...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何用纯文本方式(XML)+HTTP协议调用Workday的web service?
举报原因:
原因补充:

(最多只允许输入30个字)