我正在尝试对 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 架构:
那么现在我应该在之前放置更多的空格吗?你怎么看?如果是这样怎么办?