Вопрос по php, soap – «Ошибка при получении http тела» с помощью php SoapClient

3

У меня возникли проблемы с отправкой пользовательских данных на сервер с помощью Soap. Все, что я получаю, это:
Ошибка получения http тела, No Content-Length, соединение закрыто или данные фрагментированы Я делаю что-то неправильно

$client = new SoapClient(APPPATH.'my.wsdl',array(
    'login' => 'user',
    'password' => 'pass',
    'location' => 'http://gimmeyadata.com/crm/regserv?wsdl',
    'trace' => true,
    )
);
$result = $client->register(array(
    'Email' => '[email protected]',
    'Gender' => 'm',
    'First name' => 'Oliver',
    'Last name' => 'Liermann',
    'Language code' => 'de-de',
));

Последний заголовок ответа: HTTP / 1.1 200 OK X-SiteConfidence: jenppb601 Content-Location: http: //. ***.* / general / html / pages / layouts / columnContent.jsp Content-Language: de-DE Content-Type: text / html; charset = UTF-8 Дата: пт, 18 мая 2012 15:50:01 GMT Transfer-Encoding: chunked Соединение: keep-alive Соединение: Набор cookie-кодировки передачи: JSESSIONID = 0a6d28f530d798c4676f59494491a82035d98e25ff6f.e38Ka38Sax4TbO0MaheKbhaTbh8Te6fznA5Pp7ftolbGmkT; путь = / Cache-Control: личное

Последний заголовок запроса: POST /html/de_DE/index_DE/index.html HTTP / 1.1 Хост:. **.* Connection: Keep-Alive User-Agent: PHP-SOAP / 5.2.13 Content-Type: text / xml; кодировка = UTF-8 SOAPAction: "" Content-Length: 937 Разрешение: Basic c3RyZ19ka29zaGF2ZTpsNFB3TVZqDlRhZUc1cg == Cookie: JSESSIONID = 0a6e28e930d70301b8f6dd3e8a2598bff7cef065809a.e38Pa3mLbx4Oci0Mah4Qb34TbxmOe6fznA5Pp7etoltGmkTy; BIGipServerPirobase = 254438666.20480.0000;

PHP версия: 5.2.13

Какую версию PHP вы используете, и если вы включили трассировку мыла, пожалуйста, опубликуйте заголовок ответа. hakre

Ваш Ответ

2   ответа
12

попробуйте PHP 5.3 с

$client = new SoapClient("< some url  >", 
    array(
        'trace' => 1,
        'stream_context' => stream_context_create(
            array(
                'http' => array(
                    'protocol_version' => 1.0,
                ),
            )
        ),
    )
);
У меня была эта проблема с PHP 5.6.9 и Apache 2.4.12. Спасибо за ваше решение! Axel Zehden
Я просто потратил пару часов, которые могли бы быть намного больше, если бы я не нашел этот ответ. и кстати, я на php 7, и эта проблема все еще существует. Спасиб billynoah
У меня была та же проблема, решения для туров решают ее, спасибо! Aronis Mariano
0

С PHP 5.4.4 он не работал безTransfer-Encoding: chunked :

$client = new SoapClient("< some url  >", 
    array(
        'trace' => 1,
        'stream_context' => stream_context_create(
            array(
                'http' => array(
                    'protocol_version' => 1.0,
                    'header' => "Transfer-Encoding: chunked\r\n",
                ),
            )
        ),
    )
);

Похожие вопросы