Guzzle 3 не отправляет запрос POST

Я использую Guzzle 3, так как это единственная версия, которая работает на PHP 5.3.2.

У меня проблемы с отправкой POST-запроса, и, похоже, он на самом деле не отправляет данные сообщения. API работает нормально. Я могу использовать Postman для получения результатов при использовании правильного ключа API и идентификатора пользователя, но из моего сценария это не так.

Что я делаю не так? Я следую документации Guzzle:

$client = new Guzzle\Http\Client("http://example.com/api");

# Make API request to get session data
$request = $client->post('user/session', array(
    'body' => array(
        'token' => $_SESSION['ER']['API_KEY'],
        'user' => $_SESSION['ER']['USER_ID']
    )
));

$response = $request->send();

var_dump($_SESSION['ER']['API_KEY']);
var_dump($_SESSION['ER']['USER_ID']);

\\ string(32) "a559d5bba5a9e9517d5c3ed7aeb62db6"
\\ string(5) "30972"

Когда я var_dump $_POST['token'] на API, он даже не установлен. Тем не менее, если я запускаю запрос в Postman, он работает.

Любые советы по этому поводу, пожалуйста? Я действительно изо всех сил пытаюсь понять, что я делаю неправильно с этим запросом.


person James Jeffery    schedule 06.03.2015    source источник
comment
Как выглядит объект ответа?   -  person Ben Swinburne    schedule 06.03.2015


Ответы (1)


Я столкнулся с той же проблемой и исправил ее, вызвав сообщение типа:

$request = $client->post(
    'user/session', 
    // this is array of headers
    null, 
    // this is dedicated field with body to post
    array(
        'token' => $_SESSION['ER']['API_KEY'],
        'user' => $_SESSION['ER']['USER_ID']
    )
));
person userlond    schedule 21.12.2018
comment
У меня все еще есть проблема, которую клиент вызывает в GET (используя PHP 5.3.28) - person fiorebat; 28.08.2019