小編給大家分享一下如何模擬請求工具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)