SoapFault: похоже, мы не получили ошибку php XML-документа - PullRequest
0 голосов
/ 25 сентября 2018

У меня ошибка, решение которой я не знаю.

$response = $client->addcontract($docVar,$fVar);

Это ошибка после этой строки кода: Снимок экрана ошибки

$client=new SoapClient($wsdlUrl, array('cache_wsdl' => 0,'trace'=>1));
$docVar = new SoapVar($_POST, SOAP_ENC_OBJECT);
$file = array();
$file['file'] = base64_encode(file_get_contents($contract));
$file['filename'] = basename($contract);
$file['mime_type'] = 'application/pdf';
$fVar = new SoapVar($file, SOAP_ENC_OBJECT);

Может быть, вы можете попытаться решить эту проблему?Заранее благодарим!

Upd: В моем файле php.ini нет данных Always_populate_raw_post_data

Upd 2: Добавлен этот набор кода:

try {
    $response = $client->addcontract($docVar, $fVar);
} catch(SoapFault $fault) {
    trigger_error("Error SOAP: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
}

Вот что этовозвращает: фатальная ошибка: ошибка SOAP: (код ошибки: клиент, строка ошибок: похоже, что мы не получили XML-документ)

Upd 3: добавлен этот набор кода в блоке захвата

echo $client->__getLastRequest();
echo $client->__getLastResponse();

идобавлены «исключения» => 1 для SoapClient.Вот что он возвращает в __getLastResponse (): CException Неопределенное смещение: 1 (/var/www/yii-1.0.9.r1396/framework/base/CApplication.php:608) (/var/www/yii-1.0.9.r1396 / framework / web / services / CWebService.php: 103)

Upd 4: найден какой-то код, появляются первые строки:

/**
* @param object post         
* @param object file         
* @return array      
* @soap
*/
public function addcontract($post,$file)
{            
    if(isset($post))
    {
        //We need to add the designer,partner,job,customer,document
        $model= Partners::model()->findByPk($post->partner_id);
        if($model === null)
        {
            $model = new Partners();
            $model->id=$post->partner_id;
        }

Если я пытаюсь что-то повторить / var_dumpв этом коде ничего не происходит.Но если я сломаю; код не перейдет к моей ошибке ошибки мыла.

Upd Last: я отправил ответ на это в отдельном ответном сообщении

1 Ответ

0 голосов
/ 26 сентября 2018

Итак, я исправил ошибку.Это была ошибка в функции $ client-> addcontract ().Я думаю, что это слишком локальная ошибка, поэтому я хочу посоветовать просто проверить, нет ли ошибок в функции мыла.

...