curl傳送請求總結
經常要用到curl,需要呼叫被人的介面,總結了一個好用的方法,下次直接用~~~
public static function postCurl($url,$body,$header,$type="POST"){
//1.建立一個curl資源
$ch = curl_init();
//2.設定URL和相應的選項
curl_setopt($ch,CURLOPT_URL,$url);//設定url
//1)設定請求頭
//array_push($header, 'Accept:application/json');
//array_push($header,'Content-Type:application/json');
//array_push($header, 'http:multipart/form-data');
//設定為false,只會獲得響應的正文(true的話會連響應頭一併獲取到)
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt ( $ch, CURLOPT_TIMEOUT,5); // 設定超時限制防止死迴圈
//設定發起連線前的等待時間,如果設定為0,則無限等待。
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5);
//將curl_exec()獲取的資訊以檔案流的形式返回,而不是直接輸出。
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if(strpos($url, 'https:') === 0){
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
}
//2)設定提交方式
switch($type){
case "GET":
curl_setopt($ch,CURLOPT_HTTPGET,true);
break;
case "POST":
curl_setopt($ch,CURLOPT_POST,true);
break;
case "PUT"://使用一個自定義的請求資訊來代替"GET"或"HEAD"作為HTTP請求。這對於執行"DELETE" 或者其他更隱蔽的HTT
curl_setopt($ch,CURLOPT_CUSTOMREQUEST,"PUT");
break;
case "DELETE":
curl_setopt($ch,CURLOPT_CUSTOMREQUEST,"DELETE");
break;
}
//3)裝置請求體
if (count($body)>0) {
//$b=json_encode($body,true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);//全部資料使用HTTP協議中的"POST"操作來發送。
}
//設定請求頭
if(count($header)>0){
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
}
//上傳檔案相關設定
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 3);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// 對認證證書來源的檢查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);// 從證書中檢查SSL加密算
//4)在HTTP請求中包含一個"User-Agent: "頭的字串。-----必設
curl_setopt($ch, CURLOPT_USERAGENT, 'SSTS Browser/1.0');
curl_setopt($ch, CURLOPT_ENCODING, 'gzip');
curl_setopt ( $ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)' ); // 模擬使用者使用的瀏覽器
//5.抓取URL並把它傳遞給瀏覽器
$res=curl_exec($ch);
$result=json_decode($res,true);
//4.關閉curl資源,並且釋放系統資源
curl_close($ch);
if(empty($result))
return $res;
else
return $result;
}
有的第三方介面只支援raw格式,呼叫的時候只需要設定$header= array('Content-Type: text/plain')即可。
相關推薦
curl傳送請求總結
經常要用到curl,需要呼叫被人的介面,總結了一個好用的方法,下次直接用~~~ public static function postCurl($url,$body,$header,$type="POST"){ //1.建立一個curl資源
curl傳送請求上傳檔案(multipart file upload)
折騰一下午的問題 第三方介面需要我們傳multipart 上傳檔案 curl一直各種試不成功,用Restlet Client工具總是能成功! 對比傳送的頭,發現工具在Content-Type: multipart/form-data;後面多了個這個boundary 然後去查了下
php CURL 傳送請求詳解
cURL可以使用URL的語法模擬瀏覽器來傳輸資料,因為它是模擬瀏覽器,因此它同樣支援多種協議,FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP等協議都可以很好的支援,包括一些:HTTPS認證,HTTP PO
Linux_Linux Shell 用curl 傳送請求
linux curl是通過url語法在命令列下上傳或下載檔案的工具軟體,它支援http,https,ftp,ftps,telnet等多種協議,常被用來抓取網頁和監控Web伺服器狀態。 一、Linux curl用法舉例: 1. linux curl抓取網頁: 抓取百度:
curl傳送請求簡單實踐
環境 作業系統:win7 伺服器:centos6.5 場景 因為有個指令碼需要模擬瀏覽器傳送api請求,該api是用來初始化資料的。 具體指令碼如下: appKey="TKtXLPUuGkfaRHA" appSecret="aArwoGW9d
C++ 使用 curl 傳送 json 資料請求
用到的庫: curl nlohmann/json 假設現在 Client 想要獲取 Person 喜歡的語言,需要傳送 Person 的個人資訊到 Server,Server 根據使用者姓名返回他喜歡的語言。 struct Book { std::st
CURL-傳送POST請求
public function curlPost() { $h = curl_init(); curl_setopt($h, CURLOPT_URL, 'http://localhost/zhengze/ze.php'); //post請求地址
【工具】使用 curl 傳送 restful 請求的基礎用法
重要引數 -X/--request [GET|POST|PUT|DELETE|…] 使用指定的http method -H/--header 設定r
Linux--Shell指令碼逐行讀文字處理並curl傳送post請求json格式等問題
問題:Shell指令碼逐行讀取文字,字串分割,Curl傳送Post請求Json格式等相關問題 在linux中使用curl傳送一個post請求時,帶有json的資料,在傳送時發現json中的變數沒有解析出來: curl -d '{"Pin": "${line}"}' -H"
PHP: 利用 curl 傳送get請求
/* *傳送CURL get請求 */ function httpGet($url) { $curl = curl_init(); //初始化一個cURL會話。 curl_setopt($curl, CURLOPT_TIMEOUT, 100); //設定cURL允許執行的
php 模擬http傳送請求三種方式(curl,stream流的方式,)
一,curl cURL 是一個用來傳輸資料的工具,支援多種協議,如在 Linux 下用 curl 命令列可以傳送各種 HTTP 請求。PHP 的 cURL 是一個底層的庫,它能根據不同協議跟各種伺服器通訊,HTTP 協議是其中一種。 post請求 public
linux shell中curl 傳送post請求json格式問題 【轉】
今天在linux中使用curl傳送一個post請求時,帶有json的資料,在傳送時發現json中的變數沒有解析出來 如下 curl -i -X POST -H 'Content-type':'application/json' -d {"BTime":""$bt
php使用curl傳送post請求
<?php /** * Curl版本 * 使用方法: * $post_string = "app=request&version=beta"; * request_by_curl('http://www.jb51.net/restServer.php', $post_string);
php curl 傳送GET,POST請求的函式
protected function http_request($url, $data = null) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url);
curl傳送post和get請求
1.cURL介紹 cURL 是一個利用URL語法規定來傳輸檔案和資料的工具,支援很多協議,如HTTP、FTP、TELNET等。最爽的是,PHP也支援 cURL 庫。本文將介紹 cURL 的一些高階特性,以及在PHP中如何運用它。 2.基本結構 在學
CORS跨域請求總結
eve log 那種 http lencod pos 方法 ref orm CORS跨域請求分為簡單請求和復雜請求。 1. 簡單請求: 滿足一下兩個條件的請求。 (1) 請求方法是以下三種方法之一: HEAD GET POST (2)HTTP的頭信息不超出以下幾種字段:
curl 函數總結
curl參數:$url 請求 URL string;$body array ;$header array;function postCurl($url,$body,$header,$type="POST"){ //1.創建一個curl資源 $ch = curl_init(); //2.
curl模擬請求常用參數
accep quest 輸出 verify 會話 直接 delete 信息 返回 封裝一個curl模擬瀏覽器請求的函數,如下: /** * curl模擬瀏覽器請求 * @param unknown $url 請求的地址 * @param array $
Linux下使用curl get請求 參數帶[]的情況
import [] -c sset clas 引號 http 下使用 bsp 正常情況: curl ‘http://xxxx.xxxx.xxxx.xxxx:8080/assetservice/getXXX?參數1=xxxx&參數2=xxxx‘ 如果有兩個參數,url
常規的利用Curl傳送json資料到後臺SpringBoot+MongoDB測試CRUD
web後端的開發涉及很多很多技術,要相互配合好需要不斷的練習。本文要做的事情是實現一個伺服器端程式,運用SpringBoot技術,結合MongoDB資料庫。然後用剛學的curl命令傳送json資料來測試資料庫的CRUD功能。 首先是新建一個工程並建立pom檔案 <?xml ve