Это должно быть просто, но я потратил часы на поиск ответа и действительно застрял. Я создаю базовое приложение Laravel и использую Guzzle для замены запроса CURL, который я делаю на данный момент. Все функции CURL используют необработанные переменные JSON в теле.Можете ли вы включить сырой JSON в Body POST Body?
Я пытаюсь создать рабочий клиент Guzzle, но сервер переписывается с «недопустимым запросом», и мне просто интересно, происходит ли что-то подозрительное с JSON, которое я публикую. Я начинаю задаваться вопросом, не можете ли вы использовать необработанный JSON в теле запроса запроса Guzzle POST? Я знаю, что заголовки работают, так как я получаю действительный ответ от сервера, и я знаю, что JSON действителен, так как он в настоящее время работает в запросе CURL. Так что я застрял :-(
Любая помощь будет ооочень высоко оценен.
$headers = array(
'NETOAPI_KEY' => env('NETO_API_KEY'),
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'NETOAPI_ACTION' => 'GetOrder'
);
// JSON Data for API post
$GetOrder = '{
"Filter": {
"OrderID": "N10139",
"OutputSelector": [
"OrderStatus"
]
}
}';
$client = new client();
$res = $client->post(env('NETO_API_URL'), [ 'headers' => $headers ], [ 'body' => $GetOrder ]);
return $res->getBody();
Эй, ребята. Спасибо за быстрый ответ. Я закончил тем, что понял, что я затормаживаю, и имел заголовки и тело в отдельных массивах. Изменено: ['headers' => $ headers], ['body' => $ GetOrder] К этому: ['headers' => $ headers, 'body' => $ GetOrder] –
Несмотря на это, вы могли бы использовать опцию «json», как показано в моем ответе; это упрощает некоторые вещи. –
Спасибо, Джек. Это был полезный ответ, но у меня много звонков с очень длинными запросами JSON, и я не хочу, чтобы их преобразовывать в PHP, чтобы использовать функцию json. –