[Решено]httpclient headers

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
andrew.pol
Сообщения: 50
Зарегистрирован: 2015.12.25, 17:39

[Решено]httpclient headers

Сообщение andrew.pol »

Добрый день!
Пытаюсь получить данные со стороннего api с помощью yii2-httpclient. Вроде все отрабатывает. Но выдает вот такие ошибки:

Код: Выделить всё

-1967.2999999992862

An Error occurred while handling another error:
yii\web\HeadersAlreadySentException: Headers already sent in C:\OSPanel\domains\rate-test\models\Billing.php on line 63. in C:\OSPanel\domains\rate-test\vendor\yiisoft\yii2\web\Response.php:366
Stack trace:
#0 C:\OSPanel\domains\rate-test\vendor\yiisoft\yii2\web\Response.php(339): yii\web\Response->sendHeaders()
#1 C:\OSPanel\domains\rate-test\vendor\yiisoft\yii2\web\ErrorHandler.php(135): yii\web\Response->send()
#2 C:\OSPanel\domains\rate-test\vendor\yiisoft\yii2\base\ErrorHandler.php(111): yii\web\ErrorHandler->renderException(Object(yii\web\HeadersAlreadySentException))
#3 [internal function]: yii\base\ErrorHandler->handleException(Object(yii\web\HeadersAlreadySentException))
#4 {main}
Previous exception:
yii\web\HeadersAlreadySentException: Headers already sent in C:\OSPanel\domains\rate-test\models\Billing.php on line 63. in C:\OSPanel\domains\rate-test\vendor\yiisoft\yii2\web\Response.php:366
Stack trace:
#0 C:\OSPanel\domains\rate-test\vendor\yiisoft\yii2\web\Response.php(339): yii\web\Response->sendHeaders()
#1 C:\OSPanel\domains\rate-test\vendor\yiisoft\yii2\base\Application.php(392): yii\web\Response->send()
#2 C:\OSPanel\domains\rate-test\web\index.php(12): yii\base\Application->run()
#3 {main}
Модель:

Код: Выделить всё

<?php

namespace app\models;

use yii\base\Component;
use yii\base\InvalidConfigException;
use yii\httpclient\Client;

class Billing extends Component
{
    /**
     * HTTP API системы
     * @var string
     */
    public $url = 'https://api.***.ru/api.php';

    /**
     * Логин в системе
     * @var string
     */
    public $login = "***";

    /**
     * Пароль в системе
     * @var string
     */
    public $password = "***";

    public function get_balance()
    {
        $options = [
            'login' => $this->login,
            'password' => $this->password,
            'operation' => "account"
        ];

        $client = new Client();
        $response = $client->post($this->url, $options)->send();
        print $response->data['account'];
    }

}
Последний раз редактировалось andrew.pol 2018.03.03, 18:49, всего редактировалось 1 раз.
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: httpclient headers

Сообщение andku83 »

насколько я могу понять к ошибке привела ваша функция дампа которая отправила заголовок ответа до обычного ответа приложения - эта особенность появилась в yii 2.0.14
andrew.pol
Сообщения: 50
Зарегистрирован: 2015.12.25, 17:39

Re: httpclient headers

Сообщение andrew.pol »

Любопытно. И как это побороть? Мне, в принципе, не критично. Консольный вариант работает без ошибок и как нужно. На будущее просто, почему в консоли аналог работает четко, а в web рисует ошибки)
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: httpclient headers

Сообщение Nex-Otaku »

В консоли и веб разный конфиг, проверяйте.
Ответить