SOAP-запрос через CURL php symfony - PullRequest
0 голосов
/ 03 января 2019

В одном из моих проектов мне нужно отправить запрос SOAP на удаленные серверы. Для этого я использую скрипт ниже (используя CURL). По какой-то причине я не получаю никакого ответа, если я запускаю ниже сценария.

Если я пытаюсь отправлять запросы через SOAP UI, все работает так, как должно быть. При репликации функциональности в php я вообще не получаю ответа и не могу определить, в чем проблема.

public function sendRequestAction ($cntiin) {

        $userid = 'XXXXX';
        $clientid = 'YYYYY';
        $password = 'Test_Test';
        $urltest = 'https://y.fake.url/testServices/PersonDetailsImplService';

        //variable defenition
        $identifier = '700521700054';

        $xml_post_string = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:data="http://data.fake.url.test.net">
                                <soapenv:Header>
                                <userId>3d4f80d7</userId>
                                </soapenv:Header>
                                <soapenv:Body>
                                <data:getPerson>
                                    <!--Optional:-->
                                    <iin>' . $identifier . '</iin>
                                    <!--Optional:-->
                                    <consentConfirmed>true</consentConfirmed>
                                </data:getPerson>
                                </soapenv:Body>
                            </soapenv:Envelope>';
        $headers = array(
                        "Content-type: text/xml;charset=\"utf-8\"",
                        "Accept: text/xml",
                        "Cache-Control: no-cache",
                        "Pragma: no-cache",
                        "SOAPAction: https://y.fake.url/gbdServices/PersonDetailsImplService", 
                        "Content-length: ".strlen($xml_post_string),
                        ); //SOAPAction: your op URL
        // PHP cURL  for https connection with auth
        $url = $urltest .'?wsdl';
        $ch = curl_init();
        //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($ch, CURLOPT_USERPWD, $clientid.":".$password); // username and password - declared at the top of the doc
        curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
        curl_setopt($ch, CURLOPT_TIMEOUT, 10);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_post_string);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        $response = curl_exec($ch);
        $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);
        print_r($response);
    }

При отправке запросов через SOAP UI используется Basic Auth с логином и паролем, которые, как я считаю, учитываются выше. По-прежнему нет результатов

Я просмотрел множество статей, в том числе: это и это и многие другие, но все еще не уверены, почему не работает, поэтому любая обратная связь будет высоко оценена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...