PHP SoapClient получить GZIP WSDL - PullRequest
       6

PHP SoapClient получить GZIP WSDL

3 голосов
/ 09 октября 2010

Мой SoapClient не может открыть файл gzipped wsdl напрямую. Не стесняйтесь взглянуть на WSDL самостоятельно, я думаю, что он публичный (https://www.ad -juster.com / api_sandbox / api / dre-api.wsdl)

Я пробовал кучу настроек вроде

$client = new SoapClient("https://www.ad-juster.com/api_sandbox/api/dre-api.wsdl", array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | 9));

Но это не работает. Я также попробовал почти все комбинации функций php Zlib, и работал только gzfile ().

Это моя хаккейная работа, которая мне действительно не нравится:

$file  = fopen('/tmp/tmp.wsdl', 'w+');
$input = gzfile('https://www.ad-juster.com/api_sandbox/api/dre-api.wsdl');
foreach ($input as $line) {
  fwrite($file, $line);
}
fclose($file);
$client = new SoapClient('/tmp/tmp.wsdl', array('location' => 'https://www.ad-juster.com/api_sandbox/api/'));

Кто-нибудь может порекомендовать лучший способ сделать это?

...