Я пытаюсь подключиться к. NET службе WCF, которая имеет soap 1.2. используя PHP soap -клиента. Я получаю сообщение
SoapFault exception: [HTTP] Cannot process the message because the content type 'text/xml; charset=utf-8' was not the expected type 'application/soap+xml; charset=utf-8'. in C:\wamp64\www\eZPackPlatform\catalog\phpsoap.php:32 Stack trace: #0 C:\wamp64\www\eZPackPlatform\catalog\phpsoap.php(32): SoapClient->__doRequest('__doRequest('__call('GetAllComponent...', Array) #3 {main}
Когда я проверяю отправленный запрос soap, он выглядит следующим образом
2000
SOAP -ENV is soap версия 1.1.
Мой PHP код указан ниже, где я указываю soap версию как SOAP_1_2
<?php
//header("Content-Type: text/xml");
ini_set("soap.wsdl_cache_enabled", "0");
$client = new SoapClientDebug("https://services.plmpack.net/PLMPackService.svc?wsdl",
array('soap_version' => 'SOAP_1_2',
'location'=>'https://services.plmpack.net/PLMPackService.svc/secure',
'login' => 'guest',
'password' => 'guest_' ,
'trace' => true,
'exceptions' => true
));
if ($client != null){
echo "soap client created\n";
try{
$component_array = $client->GetAllComponents(array('index' => 0,
'length' => 200,
'number' => 0
));
print_r( $component_array );
} catch (SoapFault $exception) {
echo $exception;
}
}
class SoapClientDebug extends SoapClient
{
public function __doRequest($request, $location, $action, $version, $one_way = NULL)
{
file_put_contents('soap_log.txt', $request);
return parent::__doRequest($request, $location, $action, $version);
}
}