Недавно я начал получать ошибки проверки при отправке POST в мой интерфейс REST с помощью Content-Type: multipart/form-data
. Content-Type: application/x-www-form-urlencoded
работает.
Вот моя функция тестирования:
/**
* @Rest\Route("/testtype")
*/
public function postTypeTestAction()
{
$request = $this->getRequest()->request->all();
$phpContents = file_get_contents("php://input");
return FOSView::create()->setStatusCode(200)->setData(array('request'=>$request, 'phpinput' => $phpContents));
}
Когда я POST использую Content-Type: application/x-www-form-urlencoded
:
{
"request":{
"test":"message"
},
"phpinput":"test=message"
}
Когда я POST использую Content-Type: multipart/form-data
:
{
"request":[
],
"phpinput":"------WebKitFormBoundaryFyQqAxqqfuhWzHUq\r\nContent-Disposition: form-data; name=\"test\"\r\n\r\nmessage\r\n------WebKitFormBoundaryFyQqAxqqfuhWzHUq--\r\n"
}
Поскольку данных запроса нет, я получаю This value should not be blank
ошибок проверки. Это ломает мое приложение. Я так долго смотрел на это, я уверен, что упускаю что-то простое.
Я использую Symfony 2.3.7 и FOSRestBundle 1.0.0.