#json #slim
#json #тонкий
Вопрос:
Как я могу решить HttpBadRequestException
проблему при использовании PHPUnit для отправки запроса JSON? У меня есть тест PHPUnit в Slim Framework 4.5, который отправляет запрос JSON. Когда я получаю данные формы в контроллере, HttpBadRequestException
выдается сообщение с сообщением Malformed JSON input.
, что я могу нормально отправлять запросы cURL JSON. Когда я его реализовал в PHPUnit, он не может декодировать и считывать JSON php://input
.
// PHPUnit test
$request = $this->createJsonRequest('POST', '/hello',
[
'foo' => 'bar',
]
)
$response = $this->app->handle($request);
...
protected function createJsonRequest(
string $method,
$uri,
array $data = null
): ServerRequestInterface {
$request = $this->createRequest($method, $uri);
if ($data !== null) {
$request = $request->withParsedBody($data);
}
return $request->withHeader('Content-Type', 'application/json');
}
// controller
$formData = $this->getFormData();
Комментарии:
1. В этом случае нет смысла читать json из
php://input
, потому что тело запроса $ уже содержит данные json. Это slim 4? Какой проект Slim skeleton вы используете?2. Я использую Slim 4.5.