2

我正在尝试对 Web 服务进行肥皂调用以传递运输数据。这是我到目前为止发送的请求:

<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://weblabeling.gls-italy.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
    <env:Body>
        <ns1:AddParcel env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
        <!-- bof shipping array --->
            <XMLInfoParcel>
                <Info>
                    <SedeGls>XXXX</SedeGls>
                    <CodiceClienteGls>XXXXX</CodiceClienteGls>
                    <PasswordClienteGls>XXXXXX</PasswordClienteGls>
                    <Parcel>
                        <CodiceContrattoGls>XXXXXX</CodiceContrattoGls>
                        <RagioneSociale>XXXXXX</RagioneSociale>
                        <!-- other stuff here -->
                    </Parcel>
                </Info>
            </XMLInfoParcel>
            <!-- eof shipping array --->
        </ns1:AddParcel>
    </env:Body>
</env:Envelope>    

相反,这是网络服务问我的

    <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
      <soap12:Body>
        <AddParcel xmlns="http://weblabeling.gls-italy.com/">
          <XMLInfoParcel>string</XMLInfoParcel>
        </AddParcel>
      </soap12:Body>
    </soap12:Envelope>

我总是得到响应 xml 格式错误。

怎么了?运输数组是正确的,并且完全匹配请求之一。

提前致谢。

编辑:

这是我构建xml的方式:

//inseriamo i dati nei corretti array
$Label = array(
                'XMLInfoParcel' => array(
                'Info' => array(
                    'SedeGls' => $SedeGls,
                    'CodiceClienteGls' => $CodiceClienteGls,
                    'PasswordClienteGls' => $PasswordClienteGls,                
                    'Parcel' => array(
                                       'CodiceContrattoGls' => $cod_cont,
                                       'RagioneSociale' => $rag_soc,
                                       'Indirizzo' => $delivery_indirizzo,
                                       'Localita' => $delivery_city,
                                       'Zipcode' => $data['delivery_postcode'],
                                       'Provincia' => $data['zone_code'],
                                       'Bda' => '',
                                       'DataDocumentoTrasporto' => '',
                                       'Colli' => '1',
                                       'Incoterm' => '',
                                       'PesoReale' => '1,00',
                                       'ImportoContrassegno' => $imp_cont,
                                       'NoteSpedizione' => $data['customers_telephone'],
                                       'TipoPorto' => 'F',
                                       'Assicurazione' => $ass_ins,
                                       'PesoVolume' => '',
                                       'TipoCollo' => $tipo_collo,
                                       'FrancoAnticipata' => '',
                                       'RiferimentoCliente' => '',
                                       'NoteAggiuntive' => '',
                                       'CodiceClienteDestinatario' => '',
                                       'Email' => '',
                                       'Cellulare1' => $telefono_1,
                                       'Cellulare2' => '',
                                       'ServiziAccessori' => '',
                                       'ModalitaIncasso' => $mod_inc    
                                      ),),),                                
                );


$dom = new DOMDocumentExt('1.0', 'utf-8');              
$chiamta = $dom->loadArray($Label);
$dudy = $dom->saveXML();

@Iserni 我把---> 放在这里,这不在我的代码中,我要测试在线工具,我真的没有看到错误。

我仍然收到 xml 格式的错误,还有其他线索吗?

编辑:

我刚刚注意到我的请求有:

<ns1:AddParcel env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">

而需要的是:

<AddParcel xmlns="http://weblabeling.gls-italy.com/">

所以我注意到在信封中也有一些与命名空间不同的东西。会不会是问题?

WSDL 似乎不适用于 gls 服务器,他们没有在文档中提供任何有关它的信息。

编辑:

也许我很笨,但这是请求 xml 架构:

图式

那么现在我应该在之前放置更多的空格吗?你怎么看?如果是这样怎么办?

4

1 回答 1

2

您的 XML 中有三个错误,但您可以使用xmllint(也在线)轻松找到它们(以及将来的错误)。

基本上,您的 XML 注释应该以-->and not结尾--->,并且您应该检查标签打开/关闭。

此外,请求是针对<XMLInfoParcel>string</XMLInfoParcel>,但这不是您要发送的内容...?

于 2012-10-28T19:56:23.737 回答