Zend Http Client — ошибка недопустимого типа содержимого

Я получаю сообщение об ошибке недопустимого типа контента с запросом POST к API ApiGility.

массив (размер = 4) 'тип' => строка 'http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html' (length=54)
'title' => string 'Неподдерживаемый тип носителя' (length=22) 'status' => int 415 ' detail' => string 'Указан недопустимый тип содержимого' (длина = 30)

Так что это говорит мне, что я отправляю неправильный тип контента.

Вот мой код:

        $client = new Client(); //Zend/Http/Client
        $client->setUri('http://example.com/api/transfer');
        $client->setMethod('POST');
        $client->setOptions(
            [
                'maxredirects' => 0,
                'timeout' => 60
            ]
        );

        $client->setHeaders(['Accept' => 'application/json', 'Authorization' => 'Bearer 123453c112345c25256ff2dacb8ab212345ace91' ]);

        $client->setParameterPost(
            [
                'total' => 1,
                'code' => '0f08c43582f14686aabec4610b332629'
            ]
        );


        try {
            $response = $client->send();
        } catch (\Exception $e) {
            throw new \Exception($e);

        }

        $responseObject = json_decode($response->getBody());

        $hydrator = new \Zend\Stdlib\Hydrator\ObjectProperty;

        $result = $hydrator->extract($responseObject);

        die(var_dump($result));

Что я не могу понять из руководства: http://framework.zend.com/manual/current/en/modules/zend.http.client.html или фактический код клиента, где установить тип контента?


person HappyCoder    schedule 13.10.2015    source источник


Ответы (1)


'Content-Type' должен быть просто еще одной записью в массиве, который вы используете для $client->setHeaders(). Однако клиент должен по умолчанию иметь значение 'multipart/form-data'.

Можете ли вы сделать var_dump() из $client->getRequest()->getHeaders()?

person lsklyut    schedule 13.10.2015