Php 内容类型为的过帐:多部分/表单数据导致请求正文为空
最近,我使用Php 内容类型为的过帐:多部分/表单数据导致请求正文为空,php,rest,symfony,fosrestbundle,Php,Rest,Symfony,Fosrestbundle,最近,我使用内容类型:multipart/form data发布到我的REST界面时,开始出现验证错误内容类型:应用程序/x-www-form-urlencoded正在运行 以下是我的测试功能: /** * @Rest\Route("/testtype") */ public function postTypeTestAction() { $request = $this->getRequest()->request->all(); $phpContents
内容类型:multipart/form data
发布到我的REST界面时,开始出现验证错误<代码>内容类型:应用程序/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));
}
当我使用内容类型发布时:application/x-www-form-urlencoded
:
{
"request":{
"test":"message"
},
"phpinput":"test=message"
}
{
"request":{
"test":"message"
},
"phpinput":"test=message"
}
当我使用内容类型:多部分/表单数据发布时
:
{
"request":[
],
"phpinput":"------WebKitFormBoundaryFyQqAxqqfuhWzHUq\r\nContent-Disposition: form-data; name=\"test\"\r\n\r\nmessage\r\n------WebKitFormBoundaryFyQqAxqqfuhWzHUq--\r\n"
{
"request":{
"test":"message"
},
"phpinput":""
}
}
由于没有请求数据,我得到的值不应为空
验证错误。这破坏了我的申请。我盯着这个看了这么久,我肯定我错过了一些简单的东西
我使用的是Symfony 2.3.7和FOSRestBundle 1.0.0。这个问题在一夜之间就解决了。无需重新启动服务器,无需更改代码,我正在使用相同的工具进行测试(-Chrome扩展)。但是,由于这在开发环境和登台环境中都不起作用,而且现在在这两种环境中都起作用,因此,我唯一的答案就是测试工具Chrome、本地缓存问题或某种组合 经验教训:使用多种测试工具 现在,当我使用
内容类型:application/x-www-form-urlencoded
发表文章时:
{
"request":{
"test":"message"
},
"phpinput":"test=message"
}
{
"request":{
"test":"message"
},
"phpinput":"test=message"
}
现在,当我使用内容类型:多部分/表单数据发布时:
{
"request":[
],
"phpinput":"------WebKitFormBoundaryFyQqAxqqfuhWzHUq\r\nContent-Disposition: form-data; name=\"test\"\r\n\r\nmessage\r\n------WebKitFormBoundaryFyQqAxqqfuhWzHUq--\r\n"
{
"request":{
"test":"message"
},
"phpinput":""
}
这个问题一夜之间就解决了。无需重新启动服务器,无需更改代码,我正在使用相同的工具进行测试(-Chrome扩展)。但是,由于这在开发环境和登台环境中都不起作用,而且现在在这两种环境中都起作用,因此,我唯一的答案就是测试工具Chrome、本地缓存问题或某种组合
经验教训:使用多种测试工具
现在,当我使用内容类型:application/x-www-form-urlencoded
发表文章时:
{
"request":{
"test":"message"
},
"phpinput":"test=message"
}
{
"request":{
"test":"message"
},
"phpinput":"test=message"
}
现在,当我使用内容类型:多部分/表单数据发布时:
{
"request":[
],
"phpinput":"------WebKitFormBoundaryFyQqAxqqfuhWzHUq\r\nContent-Disposition: form-data; name=\"test\"\r\n\r\nmessage\r\n------WebKitFormBoundaryFyQqAxqqfuhWzHUq--\r\n"
{
"request":{
"test":"message"
},
"phpinput":""
}