君子以厚德载物
有朋自远方来,不宜乐乎。

1、header不需要加urlencode,浏览器会自动编码

2、curl的post和get都需要加urlencode

3、CURLOPT_POSTFIELDS,这个参数可以通过urlencoded后的字符串类似'para1=val1&para2=val2&...'或使用一个以字段名为键值,字段数据为值的数组。如果value是一个数组,Content-Type头将会被设置成multipart/form-data。 
/**
* curl访问API接口
* @param array $data
* @return json
*/
protected function curl_access($data)
{
$params='';
foreach($data as $k=>$da){
$data[$k] = urlencode($data[$k]);
$params.=$k.'='.urlencode($da).'&';
}
$params=trim($params,"&");

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->server_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
print_r($result);exit;
curl_close($ch);
return $result;
// header('Location:'.$this->server_url."?".$params);exit;

// $ch = curl_init($this->server_url.'?'.$params);
// $result = curl_exec($ch);
// print_r($result);exit;
}

posted on 2013-05-28 11:19  snowcolin  阅读(2131)  评论(0编辑  收藏  举报

期待你的评论交流