`

Soap Header收藏 Soap Header

阅读更多

Soap Header 收藏

生成的XML文本格式如下:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
- <soapenv:Envelope xmlns:SOAPSDK1="http://www.w3.org/2001/XMLSchema " xmlns:SOAPSDK2="http://www.w3.org/2001/XMLSchema-instance " xmlns:SOAPSDK3="http://schemas.xmlsoap.org/soap/encoding/ " xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/ ">
- <soapenv:Header>
<ns1:username xmlns:ns1="Authorization">sysadmin</ns1:username>
<ns2:password xmlns:ns2="Authorization">Amdocsls08</ns2:password>
</soapenv:Header>
- <soapenv:Body>
- <ns1:invoke xmlns:ns1="http://server.webservice.core.epm " soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/ ">
<path>epm/cc/assistant/ctiactioninfo/service/CtiActionInfoService</path>
<methodName>saveBatchCtiActionInfo</methodName>
<dataXmlStr><?xml version='1.0' encoding='UTF-8'?><DBSET><R><C N="calledWorkNo">agent1</C><C N="calloutNo">agent1</C><C N="itemSrc">1</C><C N="itemId">1</C><C N="callId">01</C><C N="calledExetensionNo">01</C><C N="aniNo">agent1</C><C N="dnisNo">01</C><C N="recordId">01</C><C N="orgNo">3401</C><C N="queueNo">6601</C><C N="flowNo"></C><C N="workNo">agent</C><C N="exetensionNo">3001</C></R></DBSET></dataXmlStr>
</ns1:invoke>
</soapenv:Body>
</soapenv:Envelope>

需额外生成的文本为红色标记部位...下面说下如何实现这个Soap Header的添加

在用gsoap工具编译生成的xxx.nsmp文件中加入红色标注代码

xxxxxxSoapBinding.nsmap

#include "soapH.h"

SOAP_NMAC struct Namespace namespaces[] =

{

{"SOAP-ENV", "http://schemas.xmlsoap.org/soap/envelope/", "http://www.w3.org/*/soap-envelope", NULL},

{"SOAP-ENC", "http://schemas.xmlsoap.org/soap/encoding/", "http://www.w3.org/*/soap-encoding", NULL},

{"xsi", "http://www.w3.org/2001/XMLSchema-instance", "http://www.w3.org/*/XMLSchema-instance", NULL},

{"xsd", "http://www.w3.org/2001/XMLSchema", "http://www.w3.org/*/XMLSchema", NULL},

{"ns1", "Authorization", NULL, NULL},

{"ns2", "Authorization", NULL, NULL},

{NULL, NULL, NULL, NULL}

};

在 soapC.c中对soap_out_SOAP_ENV_Header()原型进行更改,添加红色标注部分代码.

SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Header( struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Header *a, const char *type)

{

soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_SOAP_ENV__Header), type);

/* transient dummy skipped */

soap_out_string(soap, "ns1:username", 1, &(a->username), "");

soap_out_string(soap, "ns2:password", 2, &(a->password), "");

soap_element_end_out(soap, tag);

return SOAP_OK;

}

在 soapStub.h中对结构体SOAP_ENV_Header添加2个成员.分别为char *username, char *password.

#ifndef SOAP_TYPE_SOAP_ENV__Header

#define SOAP_TYPE_SOAP_ENV__Header (18)

/* SOAP Header: */

struct SOAP_ENV__Header

{

void *dummy; /* transient */

char *username;

char *password;

};

#endif

分享到:
评论

相关推荐

    Web Service SOAP Client set SOAP Header

    当涉及到Web Service客户端与服务器之间的交互时,有时需要在SOAP消息中添加额外的信息,例如身份验证或安全凭证,这就是SOAP Header的作用。SOAP Header是SOAP Envelope的一部分,它允许扩展和自定义消息处理。 在...

    Delphi的SOAP Header问题

    标题:Delphi的SOAP Header问题 描述:解决Delphi的SOAP Header问题 知识点: ### Delphi与SOAP协议 SOAP(Simple Object Access Protocol)是一种轻量级的协议,用于在Web服务中交换信息,通常基于XML格式。...

    cxf soap header 用法

    根据提供的标题、描述、标签及部分内容,我们可以详细探讨CXF框架中SOAP Header的使用方法。 ### CXF SOAP Header 使用详解 #### 一、引言 Apache CXF 是一个开源项目,提供了一套全面的框架来构建和服务 SOA 架构...

    Web Services SOAP Header 验证的例子

    在"Web Services SOAP Header 验证的例子"中,我们将探讨如何利用SOAP Header来验证客户端的身份,确保只有授权的用户或应用程序可以访问Web服务。 在SOAP消息中,Header和Body两部分是分开的。Body部分包含实际的...

    基于.NET的 SOAP Header and SOAP Extensions 扩展Webservice服务程序例子

    SOAP Header和SOAP Extensions是SOAP消息中的两个关键组成部分,它们为Web服务提供了额外的功能和扩展性。 SOAP Header不是消息的主要部分,即SOAP Body,但它允许添加额外的信息,如安全认证、交易信息或路由指令...

    soapheader的创建和解析

    在本文中,我们将深入探讨SOAP Header的创建与解析,特别是在Java环境下如何实现。SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在Web服务中传递消息。SOAP Header是SOAP消息的一部分,它允许...

    采用custom SOAP Header实现的 .NET web service 的权限控制源码例子

    SOAP消息通常包含一个Header和一个Body,Header部分可以用来传递额外的信息,如认证、会话管理等。在这个例子中,我们探讨的是如何利用自定义SOAP Header在.NET Web Service中实现权限控制。 自定义SOAP Header是一...

    C#调用使用java的带soaphead的webservice

    本案例中,我们将探讨如何使用C#在VS2013环境下调用一个Java编写的带有SOAP Header的Web服务。这个过程涉及到.NET Framework的Web服务客户端代理生成、SOAP消息的处理以及与Java Web服务的交互。 首先,我们需要...

    JAX-WS SOAP header设值

    标题中的“JAX-WS SOAP header设值”指的是在Java应用程序中使用JAX-WS(Java API for XML Web Services)框架来设置SOAP消息头的过程。SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在Web服务中...

    Axis2 通过soap header进行授权服务

    Axis2 通过soap header进行授权服务 客户端根据是否生产stub客户端代码采用两种形式实现。

    CXF客户端添加soapHeader代码 + jar包 + apache-cxf-3.1.15

    在开发基于SOAP协议的服务时,有时我们需要在请求中添加特定的Header信息,这在CXF框架下可以通过编程方式实现。Apache CXF是一个流行的开源服务框架,支持SOAP和RESTful服务的开发、部署和消费。本示例将详细介绍...

    JAVA解析soapheader

    JAVA 解析 SOAP Header 在 Java 中,SOAP Header 是一种重要的数据结构,它是 Web 服务编程中用于传输数据的标准协议。SOAP Header 中包含了许多重要的信息,如认证信息、交易信息等。下面将详细介绍如何在 Java 中...

    Web服务与soap

    5. **基于SOAP Header的安全机制**:实现一个简单的安全认证机制,使用SOAP Header中的信息来进行认证。 #### 三、实验步骤详解 1. **导出WSDL文件**:假设上节课已经完成了一个用户验证服务,现在需要导出它的...

    使用CXF实现带header的soap服务

    描述中提到的博客链接可能提供了一个详细的实践案例,展示了如何在CXF中配置和处理带有自定义header的SOAP请求。通常,这涉及到以下步骤: 1. **创建服务接口**:首先,你需要定义一个SOAP服务接口,这个接口将暴露...

    SOAP资料,介绍SOAP协议

    它由`&lt;soap:Header&gt;`和`&lt;/soap:Header&gt;`包围。 3. **SOAP Body**:消息的主要内容,包含了实际的服务调用和响应。Body中的元素通常是一个单一的XML结构,代表了Web服务的方法调用或响应。它由`&lt;soap:Body&gt;`和`&lt;/...

    SOAP结构简析与编写方式

    SOAP消息具有清晰的结构,由SOAP Envelope(信封)、SOAP Header(头部)和SOAP Body(主体)组成。 SOAP Envelope是SOAP消息的顶层XML元素,它是每个SOAP消息的基础。它的命名空间标识为...

    SOAP安全验证全套示例

    在SOAP中,通过设置SOAP Header,服务器可以要求客户端提供有效的Windows凭证来访问服务。`Demo XML Web Service for Windows Authentication`这个项目展示了如何配置和使用SOAP Header进行Windows身份验证。这涉及...

    SoapToolkit30 安装包

    1. **SOAP消息结构**:SOAP消息以XML文档的形式表示,包含三个主要部分:Header、Body和Envelope。Header用于传递与消息处理相关的元数据,Body则包含实际的服务调用信息,Envelope是整个消息的容器。 2. **SOAP...

    soap请求的工具

    2. **SOAP Header**:可选部分,用于包含消息头信息,如认证、路由等。如果存在,它会被放置在`&lt;soap:Header&gt;`元素内。 3. **SOAP Body**:这里是请求的主要内容,包含了调用Web服务的实际方法和参数。通常,这个...

    SOAP编程

    SOAP消息是一个XML文档,由三部分组成:Envelope、Header和Body。Envelope定义了消息的边界,Header包含可选的处理信息,Body则包含了实际的应用数据。 2. **SOAP Envelope**: SOAP Envelope元素是SOAP消息的根...

Global site tag (gtag.js) - Google Analytics