G_V*_*G_V 3 php json web-services httprequest symfony
通过HTTP PUT我将以下json发送到我的webservice,验证方式为return new Response($request->getContent());:
{"company_id":13}
Run Code Online (Sandbox Code Playgroud)
在我的web服务中,我试图通过请求中的标记检索数据:
var_dump("COMPANY ID ".$request->request->getInt('company_id')); //returns 0
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
//the 2 below should only work on GET from what I read
var_dump("COMPANY ID ".$request->get('company_id')); //returns nothing
var_dump("COMPANY ID ".$request->query->getInt('company_id')); //returns 0
Run Code Online (Sandbox Code Playgroud)
symfony2本书仅提到如何从GET和POST获取数据,如何从PUT请求中检索数据?
你得到它$request->getContent(),只是json_decode它,你应该得到一个对象,所以你可以访问它.例:
$data = json_decode($request->getContent());
var_dump("COMPANY ID " . $data->company_id);
Run Code Online (Sandbox Code Playgroud)
编辑以添加更多解释.
Symfony的基础的Http get方法基本上只是一个"别名"对$request->attributes->get,$request->query->get和$request->request->get,因此,如果一个返回0或假,或什么的,挺可能对方就会了.
由于HTTP PUT将数据作为主体发送,因此Request对象不会尝试以任何方式解码它,因为它可能有多种不同的格式(JSON,XML,非标准,......).如果您希望通过get方法调用访问它,则必须手动解码,然后将其添加到其request或query属性中.
| 归档时间: |
|
| 查看次数: |
3472 次 |
| 最近记录: |