1. 程式人生 > >curl傳送請求總結

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