Задать вопрос
Max_Cohen
@Max_Cohen
Программист, который не программирует

SoapClient::__doRequest() returned non string value... что не так?

Добрый день,

Написал простой на PHP скрипт, который используя сервис SOAP отправляет запрос на сервер. Запрос сервер принимает, потом отвечает. Проблема здесь, ничего не могу прочитать из ответа:

Сообщение об ошибке:
SoapClient::__doRequest() returned non string value

Ответ заголовка такой:
HTTP/1.1 200 OK
Date: Mon, 03 Sep 2018 10:17:16 GMT
Content-Length: 1352
Content-Type: text/xml; charset=utf-8
X-Powered-By: Servlet/2.5 JSP/2.1


Версия PHP:
7.0.31.

Код на PHP:
<?php

ini_set('display_errors', TRUE);
ini_Set('display_startup_errors', TRUE);

ini_set('soap.wsdl_cache_enabled', 1);
ini_set('soap.wsdl_cache_ttl', 0);

$url = '... URL to WSDL ...';

$client = new SoapClient($url, array(
    'connection_timeout' => 50,
    'cache_wsdl' => WSDL_CACHE_MEMORY,
    'trace' => 1,
    'soap_version' => 'SOAP 1.2',
    'encoding' => 'utf-8',
    'exceptions' => true,
    'login' => '...username...',
    'password' => '...password...',
));

class TestClass
{
    public $testVar;
}

$test = new TestClass;
$test->testVar = 'TestTestTest';

try {
    $return = $client->__soapCall('TestFunction', array($test));
} catch (SoapFault $soapFault) {
    print_r($soapFault->getMessage());

    echo "Request: ", htmlentities($client->__getLastRequest());
    echo "Response: [", htmlentities($client->__getLastResponse());

    print_r($client->__getLastRequest());
    print_r($client->__getLastRequestHeaders());
    print_r($client->__getLastResponse());
    print_r($client->__getLastResponseHeaders());
}
  • Вопрос задан
  • 862 просмотра
Подписаться 2 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Skillbox
    Профессия PHP-разработчик с нуля до PRO
    7 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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