码迷,mamicode.com
首页 > Web开发 > 详细

curl里面的坑

时间:2014-10-31 19:05:21      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   os   ar   使用   sp   

  如果在使用粗crul library来进行远程请求(API调用)的时候要注意的一个坑。就是要区别请求成功,请求失败,请求成功但返回为空。这里要特别注意后2者,稍不注意就会掉坑。因为如果请求的url不存在或者连接超时(各种原因)的时候返回结果为false.所以不要简单的认为返回的数据为空。可以用$result === false为真来判断请求失败。因为一般的API不会返回boolean值的。引申一下,如果你是在制作一个API也请不要随意的返回一个空数据为false.这样会很难区分到底是数据为空还是请求失败。就比如:

bubuko.com,布布扣
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");
        }
    }
View Code

或者这样也可以

bubuko.com,布布扣
1 if ($result === false) {
2     //请求失败
3 } else {
4     //请求成功
5 }
View Code

 

 

curl里面的坑

标签:style   blog   http   io   color   os   ar   使用   sp   

原文地址:http://www.cnblogs.com/pheop/p/4065734.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!