如何模擬請求工具curl的異常處理

小編給大家分享一下如何模擬請求工具curl的異常處理,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的忻州網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

日常開發(fā)過程中,使用curl進(jìn)行模擬請求的場景比較多。當(dāng)跨站請求時(shí),并不能保證其他網(wǎng)站的穩(wěn)定性。
當(dāng)其他網(wǎng)站無法順利訪問,會(huì)影響到當(dāng)前的業(yè)務(wù)系統(tǒng),且不容易排查問題,因此需要作異常處理 。

private function curlPost(string $route, array $postData):array
{
    try {
        //發(fā)送消息到任務(wù)隊(duì)列
        $url = env('API_URL') . $route;
        //初始化
        $curl = curl_init();
        //設(shè)置抓取的url
        curl_setopt($curl, CURLOPT_URL, $url);
        //設(shè)置頭文件的信息作為數(shù)據(jù)流輸出
        curl_setopt($curl, CURLOPT_HEADER, false);
        //設(shè)置獲取的信息以文件流的形式返回,而不是直接輸出。
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        //設(shè)置post方式提交
        curl_setopt($curl, CURLOPT_POST, true);
        //設(shè)置post數(shù)據(jù)
        curl_setopt($curl, CURLOPT_POSTFIELDS, $postData);
       //$userAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";//模擬windows用戶正常訪問
       //curl_setopt($curl, CURLOPT_USERAGENT, $userAgent);
       //執(zhí)行命令
        $output = curl_exec($curl);
        
        //獲取錯(cuò)誤編碼
        $curlErrno = curl_errno($curl);
        if ($curlErrno) {
            throw new Exception(curl_error($curl) . '(' . $curlErrno . ')');
        }
        //關(guān)閉URL請求
        curl_close($curl);
        $result = json_decode($output, true);
        $result['curl_status'] = 1;
        $result['curl_message'] = '';
    } catch (\Exception $e) {
        $result['curl_status'] = 0;
        $result['curl_message'] = $e->getMessage();
    }
    return $result; 

}

//調(diào)用

$result = $this->curlPost($route, $postData);
//校驗(yàn)curl是否發(fā)送正常
if (!$result['curl_status']) {
    return $this->returnError($result['curl_message']);
}

//校驗(yàn)業(yè)務(wù)
if ($result['errorCode'] == 0) {
    return $this->returnSuccess([]);
} else {
    return $this->returnError($result['errorMsg']);
}

curl相關(guān)函數(shù)

int curl_errno    ( resource $ch   ) 返回最后一次 cURL 操作的錯(cuò)誤代碼。
返回錯(cuò)誤代碼或在沒有錯(cuò)誤發(fā)生時(shí)返回 0 (零)。  

string curl_error    ( resource $ch   )返回最近一次 cURL 操作的文本錯(cuò)誤詳情。  

以上是“如何模擬請求工具curl的異常處理”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

當(dāng)前題目:如何模擬請求工具curl的異常處理
轉(zhuǎn)載源于:http://muchs.cn/article12/ghjsgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、服務(wù)器托管、小程序開發(fā)、關(guān)鍵詞優(yōu)化、網(wǎng)頁設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營