php的http請求類

來源:互聯網
上載者:User
這篇文章主要介紹了關於php的http請求類,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

<?phpnamespace app\lib;class Lib_http{//發起網路請求    public function call($url, $args = null, $method = "post", $testflag = 0, $timeout = 60, $headers = array())    {/*{{{*/        Lib_log::set_log('http',$url);        $ret = false;        $i = 0;        while ($ret === false) {            if ($i > 1)                break;            if ($i > 0) {                sleep(1);            }            $ret = $this->callOnce($url, $args, $method, false, $timeout, $headers);            $i++;        }        return $ret;    }/*}}}*/    private function callOnce($url, $args = null, $method = "post", $withCookie = false, $timeout = CURL_TIMEOUT, $headers = array())    {/*{{{*/        $ch = curl_init();        if ($method == "post") {            $data =$this->convert($args);            curl_setopt($ch, CURLOPT_POSTFIELDS, $data);            curl_setopt($ch, CURLOPT_POST, 1);        } else {            $data =$this->convert($args);            if ($data) {                if (stripos($url, "?") > 0) {                    $url .= "&$data";                } else {                    $url .= "?$data";                }            }        }        curl_setopt($ch, CURLOPT_URL, $url);        curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);       // curl_setopt($ch, CURLOPT_HEADER, true);        if (!empty($headers)) {            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);        }       if ($withCookie) {            curl_setopt($ch, CURLOPT_COOKIEJAR, $_COOKIE);        }        $r = curl_exec($ch);        curl_close($ch);       return $r;    }/*}}}*/    private  function convert(&$args)    {/*{{{*/        $data = '';        if (is_array($args)) {            foreach ($args as $key => $val) {                if (is_array($val)) {                    foreach ($val as $k => $v) {                        $data .= $key . '[' . $k . ']=' . rawurlencode($v) . '&';                    }                } else {                    $data .= "$key=" . rawurlencode($val) . "&";                }            }            return trim($data, "&");        }        return $args;    }/*}}}*/}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.