久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

PHP curl get post 請求的封裝函數(shù)示例【get、post、put、delete等請求類型】

瀏覽:117日期:2022-06-10 16:51:11

一、get

//get請求
function getUrl($url, $header = [])
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPGET, true);
    if ($header) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    }
    curl_setopt($ch, CURLOPT_TIMEOUT, 30); //設置超時時間:30s
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //忽略ssl檢測
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //1 或 TRUE 將curl_exec()獲取的信息以字符串返回,而不是直接輸出。-
    curl_setopt($ch, CURLINFO_HEADER_OUT, true); //TRUE 時追蹤句柄的請求字符串,從 PHP 5.1.3 開始可用。這個很關鍵,就是允許你查看請求header
    $output = curl_exec($ch);
    if (!$output) {
//echo "request $url fail:", (array)curl_error($ch); //記錄日志
    }
    curl_close($ch);
//    echo "request $url success:" . json_encode(array($url, $header, $output), true); //記錄日志
    return $output;
}

二、del

//del請求
function delUrl($url, $header = []) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //為true,則會跟蹤爬取重定向頁面,否則,不會跟蹤重定向頁面
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30); //設置超時時間:30s
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //忽略ssl檢測
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //1 或 TRUE 將curl_exec()獲取的信息以字符串返回,而不是直接輸出。-
    curl_setopt($ch, CURLINFO_HEADER_OUT, true); //TRUE 時追蹤句柄的請求字符串,從 PHP 5.1.3 開始可用。這個很關鍵,就是允許你查看請求header
    curl_setopt($ch, CURLOPT_URL, $url);
    $output = curl_exec($ch);
    if (!$output) {
//echo "request $url fail:", (array)curl_error($ch); //記錄日志
    }
    curl_close($ch);
//    echo "request $url success:" . json_encode(array($url, $header, $output), true); //記錄日志
    return $output;
}

三、put

//put請求
function putUrl($url, $data = [], $header = []) {
    $ch = curl_init();
    if (!empty($data)) {
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //定義提交的數(shù)據(jù)
    }
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //為true,則會跟蹤爬取重定向頁面,否則,不會跟蹤重定向頁面
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30); //設置超時時間:30s
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //忽略ssl檢測
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //1 或 TRUE 將curl_exec()獲取的信息以字符串返回,而不是直接輸出。-
    curl_setopt($ch, CURLINFO_HEADER_OUT, true); //TRUE 時追蹤句柄的請求字符串,從 PHP 5.1.3 開始可用。這個很關鍵,就是允許你查看請求header
    curl_setopt($ch, CURLOPT_URL, $url);
    $output = curl_exec($ch);
    if (!$output) {
//echo "request $url fail:", (array)curl_error($ch); //記錄日志
    }
    curl_close($ch);
//    echo "request $url success:" . json_encode(array($url, $header, $output), true); //記錄日志
    return $output;
}

四、post

//post請求
function postUrl($url, $data, $header = [])
{
    $ch = curl_init();
    if (!empty($data)) {
curl_setopt($ch, CURLOPT_POST,true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    }
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //為true,則會跟蹤爬取重定向頁面,否則,不會跟蹤重定向頁面
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30); //設置超時時間:30s
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //忽略ssl檢測
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //1 或 TRUE 將curl_exec()獲取的信息以字符串返回,而不是直接輸出。-
    curl_setopt($ch, CURLINFO_HEADER_OUT, true); //TRUE 時追蹤句柄的請求字符串,從 PHP 5.1.3 開始可用。這個很關鍵,就是允許你查看請求header
    curl_setopt($ch, CURLOPT_URL, $url);
    $output = curl_exec($ch);
    if (!$output) {
//echo "request $url fail:", (array)curl_error($ch); //記錄日志
    }
    curl_close($ch);
//    echo "request $url success:" . json_encode(array($url, $header, $output), true); //記錄日志
    return $output;
}

五、post json

//post json 請求
function postJsonUrl($url, $data, $header = [])
{
    $data = json_encode($data);
    $ch = curl_init();
    if (!empty($data)) {
curl_setopt($ch, CURLOPT_POST,true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    }
    $header[]="Content-Type: application/json; charset=utf-8";
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //為true,則會跟蹤爬取重定向頁面,否則,不會跟蹤重定向頁面
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30); //設置超時時間:30s
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //忽略ssl檢測
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //1 或 TRUE 將curl_exec()獲取的信息以字符串返回,而不是直接輸出。-
    curl_setopt($ch, CURLINFO_HEADER_OUT, true); //TRUE 時追蹤句柄的請求字符串,從 PHP 5.1.3 開始可用。這個很關鍵,就是允許你查看請求header
    curl_setopt($ch, CURLOPT_URL, $url);
    $output = curl_exec($ch);
    if (!$output) {
//echo "request $url fail:", (array)curl_error($ch); //記錄日志
    }
    curl_close($ch);
//    echo "request $url success:" . json_encode(array($url, $header, $output), true); //記錄日志
    return $output;
}

六、計算請求運行時間

  • 可以在接口請求日志信息中記錄運行時間,以便以后排查問題(程序執(zhí)行緩慢,是哪個接口拖了時間)
  • 代碼
$startTime = microtime(true);
for ($i = 0; $i < 9999999; $i++) {
};
$endTime = microtime(true);
$runTime = sprintf("%.6f", ($endTime-$startTime));
echo "執(zhí)行時間為:{$runTime} s";
die;
  • 打印
執(zhí)行時間為:0.202176 s

PS:針對常見的post、get、put、delete等請求方式,筆者經常使用postman或者ApiFox進行請求測試,并且通常前后端傳輸數(shù)據(jù)以json為主。 

標簽: PHP
相關文章:
主站蜘蛛池模板: 福利视频1000| 一区二区在线影院 | 精品96久久久久久中文字幕无 | 欧美成人免费网站 | 成人国产在线观看 | www.国产精品.com | 精品三级三级三级三级三级 | 影音先锋中文字幕一区 | 亚州视频在线 | 黄色一级免费电影 | 男人的天堂在线视频 | 亚洲成av人乱码色午夜 | 国产精品美女久久久久久久久久久 | 国产精品永久免费视频 | 国产精品久久久久aaaa九色 | 欧美日韩中文字幕 | 久久精品手机视频 | 91在线观看 | 国产精品久久久久毛片软件 | 91久久国产精品 | 亚洲精品视频在线免费播放 | 成年人精品视频在线观看 | 欧美xxxx做受欧美 | 成人av高清在线观看 | 日韩中文在线观看 | 剑来在线观看 | 精品乱码一区二区 | 久久久精品一区 | 一区二区三区成人 | 欧美一区二区日韩 | 日本精品免费观看 | 日韩成人一区二区 | 久久国内精品 | av网站大全免费 | 精品视频一区二区在线 | 亚洲视频一区二区三区 | 嫩草视频在线播放 | 日日摸日日碰夜夜爽不卡dvd | 日韩1 | 亚洲欧美国产精品专区久久 | 久久亚洲综合 |