首页 > 代码库 > curl里面的坑
curl里面的坑
如果在使用粗crul library来进行远程请求(API调用)的时候要注意的一个坑。就是要区别请求成功,请求失败,请求成功但返回为空。这里要特别注意后2者,稍不注意就会掉坑。因为如果请求的url不存在或者连接超时(各种原因)的时候返回结果为false.所以不要简单的认为返回的数据为空。可以用$result === false为真来判断请求失败。因为一般的API不会返回boolean值的。引申一下,如果你是在制作一个API也请不要随意的返回一个空数据为false.这样会很难区分到底是数据为空还是请求失败。就比如:
protected function send($parameters = array()) { $apiUrl = "xxxxx"; if ($parameters) { $apiUrl .= ‘&‘ . http_build_query($parameters); } $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $apiUrl); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, ‘GET‘); curl_setopt($ch, CURLOPT_HEADER, 0); $result = curl_exec($ch); $curlErrno = curl_errno($ch); $curlError = curl_error($ch); curl_close($ch); if ($result && $curlErrno <= 0) { return json_decode($result, true); } else { exit("Error: " . $curlError . "\n"); } }
或者这样也可以
1 if ($result === false) {2 //请求失败3 } else {4 //请求成功5 }
curl里面的坑
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。