веб-сервисы — Soap-соединение из PHP в Microsoft WS

Мне нужен эквивалент следующего для PHP

    System.Net.NetworkCredential credential = new System.Net.NetworkCredential("administrator", "PASSWORD", "DOMAIN");
wsDynamicsGP.Credentials = credential;
DynamicsGPWebService.Policy apPolicy = wsDynamicsGP.GetPolicyByOperation("CreatePayablesInvoice", context);

Я передаю пароль домена / пользователя

define('USERPWD', 'domain\username:password');

Затем я нашел это

class NTLMSoapClient extends SoapClient {
function __doRequest($request, $location, $action, $version) {
$headers = array(
'Method: POST',
'Connection: Keep-Alive',
'User-Agent: PHP-SOAP-CURL',
'Content-Type: text/xml; charset=utf-8',
'SOAPAction: "'.$action.'"',
);
$this->__last_request_headers = $headers;
$ch = curl_init($location);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true );
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_NTLM);
curl_setopt($ch, CURLOPT_USERPWD, USERPWD);
$response = curl_exec($ch);
return $response;
}

function __getLastRequestHeaders() {
return implode("\n", $this->__last_request_headers)."\n";
}
}

(Есть вспомогательный класс, но я не думаю, что мне нужно публиковать его)

Поэтому, чтобы проверить мою связь, я делаю это

// we unregister the current HTTP wrapper
stream_wrapper_unregister('http');
// we register the new HTTP wrapper
stream_wrapper_register('http', 'NTLMStream') or die("Failed to register protocol");

// Initialize Soap Client
$baseURL = 'http://www.targetgpserver.com:port';
$client = new NTLMSoapClient($baseURL.'/DynamicsGPWebServices/DynamicsGPService.asmx?wsdl');
print_var($client);

Когда я запускаю скрипт, я получаю следующее:

PHP Fatal error:  SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://erpweb.treecarescience.com:48620/DynamicsGPWebServices/DynamicsGPService.asmx' : Document is empty

Есть ли способ подтвердить, что я могу подключиться, используя что-то вроде hurl.it? Я не уверен, как обрабатывать домен с помощью этого сервиса.

Я на Mac, есть ли другой способ подтвердить, что я могу подключиться?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]