如何使用XML :: Compile添加头信息

时间:2016-12-02 11:02:51

标签: xml perl web-services

我有以下代码片段来使用XML::Compile模块

调用Web服务
@echo off

set filename=TEST

set searchPath=E:\

set Destination= E:\FOUND

FOR /R "%searchPath%" %%a  in (%filename%) DO (
    IF EXIST "%%~fa" (
        echo "%%~fa"
    )
)

move "%%~fa" "%Destination%"

我必须将以下信息添加到SOAP信封的标题部分:

#!/usr/bin/env perl
use strict;
use warnings;

use Data::Dumper;
use XML::Compile::WSDL11;    # use WSDL version 1.1
use XML::Compile::SOAP11;    # use SOAP version 1.1
use XML::Compile::Transport::SOAPHTTP;

my $xml      = '...';
my $wsdl_dir = '...';
my $wsdl     = XML::Compile::WSDL11->new( $wsdl_dir . 'system.wsdl' );
$wsdl->addWSDL( $wsdl_dir . 'Service_v01.01.wsdl' );
$wsdl->importDefinitions( '...Service_v01.01.xsd' );

my $url = "http:...";
$call = $wsdl->compileClient( 'createContract', endpoint => $url );

my $schema = XML::Compile::Schema->new( '...Service_v01.01.xsd' );
my $reader = $schema->compile( READER => '{http://..Service_v01.01/types}createContract' );
$xml_hash = $reader->( $xml );

my ( $answer, $trace ) = $call->( $xml_hash );

print Dumper $trace->errors if $trace->errors;

 <Sender>MySystem</Sender>

 <MessageId>87o23676vx7ir5v</MessageId>

示例:

 <soapenv:Header>..</soapenv:Header>          

我没有使用<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="..." xmlns:typ="..."> <soapenv:Header> <Sender>MySystem</Sender> <MessageId>87o23676vx7ir5v</MessageId> </soapenv:Header> <soapenv:Body> <typ:createContract> ... 的经验,对SOAP请求知之甚少。

0 个答案:

没有答案