标签:
最近用restserver遇到个蛋疼的问题,发现$this->put得到的参数都是null。查了一下发现,这貌似这个普遍问题,参见链接:https://github.com/chriskacerguis/codeigniter-restserver/issues/362
还是先来看下官方的解释:参见 http://code.tutsplus.com/tutorials/working-with-restful-services-in-codeigniter-2--net-8814
$this->put()
Reads in PUT arguments set in the HTTP headers or via cURL.
1,与post保持一致,仍然在body里传参数。在基类里写个函数:
public function getPut($key){
return $this->input->input_stream($key);
}
$data = $this->getPut(array(‘tel‘, ‘name‘, ‘addr‘));
其实CI里从input出来的函数应该都支持多字段同时取,但Restserver的this->get() post()却不支持。补充:当把参数放body里时,直接用$this->put()就可以获得到对应字段了,文档说是在headers,实际是在body里!但$this->put()不支持多字段,故上述函数还是有意义的。
$this->delete()也有这个问题,读不到headers里的参数,但能读到body里的!!!
2,参数在header里传,基类里写个函数:
/**
* 获得key对应的header
* @param $key
* @return mixed
*/
public function getHeader($key){
return $this->input->get_request_header($key, TRUE);
}
ps:restserver里put获得不到参数的问题跟Content-Type:application/json 这个设置无关。
------欢迎大家加入PHP CodeIgniter社区群:460132647
CodeIgniter RestServer中put请求获取不到参数的问题解决
标签:
原文地址:http://blog.csdn.net/yanzi1225627/article/details/50387109