php http_build_query 导致的接口访问异常

来源:互联网 发布:linux如何搜索文件夹 编辑:程序博客网 时间:2024/06/05 02:46
背景:访问远程接口,使用了http_build_query 来组织请求参数,并通过crul发送请求并获得结果。
$urlparams = array();$urlparams['id']=$this->id;$urlparams['ctype']=$ctype;$requestUrl = $urlHead.'?'.http_build_query($urlparams)$resu = $this->_fetchUrl($requestUrl);
这样看上去不错,echo出来也正常,浏览器访问也ok,然后继续....
/** * 发送请求 */private function _fetchUrl($url){//初始化 curl$ch = curl_init();curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_REFERER,"");curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);$html =  curl_exec($ch);curl_close($ch);return $html;}

问题:接口异常了,说丢失了参数,检查请求的url,一切正常~~ 

排查:通过httpwatch,检查发送出去的请求,发现中间的 & 符号被转移成了& ok,问题解决

原创粉丝点击