主頁 > 後端開發 > curl的基本使用

curl的基本使用

2021-08-14 06:13:00 後端開發

基本使用

1. 初始化

初始化非常簡單,只需要呼叫curl_init()函式即可,他會回傳一個curl句柄,后邊幾乎其他關于curl的設定,關閉等函式都需要使用這個句柄

$curl = curl_init();

2. 常用的相關設定

更多詳細設定資訊請看 [附錄一][fulu1]

  • 設定需要請求的url

    curl_setopt($curl, CURLOPT_URL, 'https://bill.itffz.cn/curl_test_get');
    
  • 設定頭檔案是否輸出

    curl_setopt($curl, CURLOPT_HEADER, 0); // 不輸出, 默認
    # 回傳結果:
    我是通過echo陳述句輸出的{"code":0,"message":"\u8fd9\u662f\u4e00\u4e2acurl\u7684get\u8bf7\u6c42\u6d4b\u8bd5"}
    
    curl_setopt($curl, CURLOPT_HEADER, 1); // 輸出,他會將header頭資訊輸出出來
    # 回傳結果:
    HTTP/1.1 200 OK Server: nginx Content-Type: text/html; charset=UTF-8 Transfer-Encoding: chunked Connection: keep-alive Vary: Accept-Encoding Cache-Control: no-cache, private Date: Fri, 13 Aug 2021 03:32:51 GMT Set-Cookie: XSRF-TOKEN=eyJpdiI6ImZNbTBlS0xaaFdsTkJOZTBxU1NiNFE9PSIsInZhbHVlIjoibDFFTWVuVzRyVjVSMEZTNWc2RHNNRGNieW9KWk4xT2Q5RUtjdGVxd2pBdTR0emxKL2FzR1J6ZFI3TEpwTWR2cDVCVXZzaHRGck1qZUd6SVp0anJJN3liUEh3N3ZHNmt4TzdHOTlwakJYaTVobFUyMUZ5eTB3aE9US2VtZFVDRmEiLCJtYWMiOiI4MmIyMmJkZmI5NDg1NDU1ZjZkMzEwYjYwMTc1MGIxMTMyZmQ2NDQxNjBjYzA5YTkxZmI4ZDM3ZDY3YmQzNGRmIn0%3D; expires=Fri, 13-Aug-2021 05:32:51 GMT; Max-Age=7200; path=/; samesite=lax Set-Cookie: laravel_session=eyJpdiI6ImlmemIrVkF5bTM4YTExRHFnbDRUNFE9PSIsInZhbHVlIjoiK2gwR0N5aXBSdzd0bkdLcWlkd0JuOTFQQjRNcm1mL2JyaDJRR0ZqVlVQK0phS1VGNDdzK29RYnNBR1p6RWJKeGhWaURjcmZpc1M2eWx0ZkdZTmY4dUpSQW5hTWt3SWFWd0FXeXlCOGdJbHh3VDR2UzV6WHpqSEliYStyOVhnUkIiLCJtYWMiOiJiYTZjMzM5MjQzMWMwZmUzZTFiODcwNzk3ZmVlNTE1OTYwNWEyYWY4ZWE2MTkwNTRkOTA4YzQwODhkMGRjOTc3In0%3D; expires=Fri, 13-Aug-2021 05:32:51 GMT; Max-Age=7200; path=/; httponly; samesite=lax Strict-Transport-Security: max-age=31536000 我是通過echo陳述句輸出的{"code":0,"message":"\u8fd9\u662f\u4e00\u4e2acurl\u7684get\u8bf7\u6c42\u6d4b\u8bd5"}
    
  • 設定請求超時時間

    當請求等待時長超過了所設定的時間還未有回應,curl_exec()會回傳false

    可以通過curl_error()函式將錯誤資訊獲取出來

    錯誤資訊類似于這樣:"Operation timed out after 1000 milliseconds with 0 bytes received"

    curl_setopt($curl, CURLOPT_TIMEOUT, 0); # 當值為0的話為一直等待
    // 超時設定,以秒為單位
    curl_setopt($curl, CURLOPT_TIMEOUT, 1);  # 設定超時時間為1秒
    // 超時設定,以毫秒為單位
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT_MS, 1000);  # 設定超時時間為1000毫秒
    
  • 設定提交方式

    curl_setopt($curl, CURLOPT_POST, true);//設定post方式提交
    curl_setopt($curl, CURLOPT_HTTPGET, true);//設定get方式提交, 默認
    curl_setopt($curl, CURLOPT_PUT, true);//設定PUT方式提交
    
  • 設定post提交引數

    $data = https://www.cnblogs.com/yingxiaozhu/p/['name' => '穎小主',
      'age' => 18
    ];
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    
  • 設定將結果是直接顯示還是回傳

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, 'https://bill.itffz.cn/curl_test_get');
    // 將結果回傳
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $data = https://www.cnblogs.com/yingxiaozhu/p/curl_exec($curl);
    dump($data);
    # 回傳結果"我是通過echo陳述句輸出的 我是return的資料:{"code":0,"message":"\u8fd9\u662f\u4e00\u4e2acurl\u7684get\u8bf7\u6c42\u6d4b\u8bd5"}"
      
      
      
    // 將結果直接輸出
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, 'https://bill.itffz.cn/curl_test_get');
    // 將結果回傳
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
    $data = https://www.cnblogs.com/yingxiaozhu/p/curl_exec($curl);
    dump($data);
    # 回傳結果
    我是通過echo陳述句輸出的 我是return的資料:{"code":0,"message":"\u8fd9\u662f\u4e00\u4e2acurl\u7684get\u8bf7\u6c42\u6d4b\u8bd5"}
    
    true // 該行是通過dump($data)的輸出
    

3. 獲取例外

可以通過curl_errno()函式進行判斷最后一次請求是否有錯誤,如果沒有錯誤的時候該函式回傳0

if (curl_errno($curl)) { // 如果發生錯誤時
  // 可以通過curl_error()函式獲取錯誤資訊
  dump(curl_error($curl));
}

4. 關閉curl

curl_close($curl); 

請求案例

1. POST請求

請求案例基于Laravel 框架

請求地址中的介面方法

Route::get('curl_test_get', function () {
    echo '我是通過echo陳述句輸出的';
    return ' 我是return的資料:'.json_encode(['code' => 0, 'message' => '這是一個curl的get請求測驗']);
});

請求方法

Route::get('/test', function (\Illuminate\Http\Request $request) {
	// 初始化curl
  $curl = curl_init();
  // 設定請求地址
  curl_setopt($curl, CURLOPT_URL, 'https://bill.itffz.cn/curl_test_get');
  //設定頭檔案的資訊作為資料流輸出
  curl_setopt($curl, CURLOPT_HEADER, 0);
  // 超時設定,以秒為單位
  curl_setopt($curl, CURLOPT_TIMEOUT, 100);
  //設定post方式提交
  curl_setopt($curl, CURLOPT_POST, 1);
  // 設定將結果回傳而不是直接顯示
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  // 設定傳輸的資料
  $data = https://www.cnblogs.com/yingxiaozhu/p/['name' => '穎小主',
    'age' => 18
	];
	curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
  //執行命令
  $data = https://www.cnblogs.com/yingxiaozhu/p/curl_exec($curl);
  // 關閉curl
  curl_close($curl);  
  dump($data); // 列印回傳結果
});

附錄1

附錄1 摘錄自php開發手冊

curl_setopt ( resource $ch , int $option , mixed $value ) : bool

ch

由 curl_init() 回傳的 cURL 句柄,

option

需要設定的CURLOPT_XXX選項,

value

將設定在option選項上的值,

以下 option 引數的 value應該被設定成 bool 型別:

選項 value 設定為 備注
CURLOPT_AUTOREFERER TRUE 時將根據 Location: 重定向時,自動設定 header 中的Referer:資訊,
CURLOPT_BINARYTRANSFER 設為 TRUE ,將在啟用 CURLOPT_RETURNTRANSFER 時,回傳原生的(Raw)輸出, 從 PHP 5.1.3 開始,此選項不再有效果:使用 CURLOPT_RETURNTRANSFER 后總是會回傳原生的(Raw)內容,
CURLOPT_COOKIESESSION 設為 TRUE 時將開啟新的一次 cookie 會話,它將強制 libcurl 忽略之前會話時存的其他 cookie, libcurl 在默認狀況下無論是否為會話,都會儲存、加載所有 cookie,會話 cookie 是指沒有過期時間,只存活在會話之中,
CURLOPT_CERTINFO TRUE 將在安全傳輸時輸出 SSL 證書資訊到 STDERR 在 cURL 7.19.1 中添加, PHP 5.3.2 后有效, 需要開啟 CURLOPT_VERBOSE 才有效,
CURLOPT_CONNECT_ONLY TRUE 將讓庫執行所有需要的代理、驗證、連接程序,但不傳輸資料,此選項用于 HTTP、SMTP 和 POP3, 在 7.15.2 中添加, PHP 5.5.0 起有效,
CURLOPT_CRLF 啟用時將Unix的換行符轉換成回車換行符,
CURLOPT_DNS_USE_GLOBAL_CACHE TRUE 會啟用一個全域的DNS快取,此選項非執行緒安全的,默認已開啟,
CURLOPT_FAILONERROR 當 HTTP 狀態碼大于等于 400,TRUE 將將顯示錯誤詳情, 默認情況下將回傳頁面,忽略 HTTP 代碼,
CURLOPT_SSL_FALSESTART TRUE 開啟 TLS False Start (一種 TLS 握手優化方式) cURL 7.42.0 中添加,自 PHP 7.0.7 起有效,
CURLOPT_FILETIME TRUE 時,會嘗試獲取遠程檔案中的修改時間資訊, 資訊可通過curl_getinfo()函式的CURLINFO_FILETIME 選項獲取,
CURLOPT_FOLLOWLOCATION TRUE 時將會根據服務器回傳 HTTP 頭中的 "Location: " 重定向,(注意:這是遞回的,"Location: " 發送幾次就重定向幾次,除非設定了 CURLOPT_MAXREDIRS,限制最大重定向次數,),
CURLOPT_FORBID_REUSE TRUE 在完成互動以后強制明確的斷開連接,不能在連接池中重用,
CURLOPT_FRESH_CONNECT TRUE 強制獲取一個新的連接,而不是快取中的連接,
CURLOPT_FTP_USE_EPRT TRUE 時,當 FTP 下載時,使用 EPRT (和 LPRT)命令, 設定為 FALSE 時禁用 EPRT 和 LPRT,僅僅使用PORT 命令,
CURLOPT_FTP_USE_EPSV TRUE 時,在FTP傳輸程序中,回到 PASV 模式前,先嘗試 EPSV 命令,設定為 FALSE 時禁用 EPSV,
CURLOPT_FTP_CREATE_MISSING_DIRS TRUE 時,當 ftp 操作不存在的目錄時將創建它,
CURLOPT_FTPAPPEND TRUE 為追加寫入檔案,而不是覆寫,
CURLOPT_TCP_NODELAY TRUE 時禁用 TCP 的 Nagle 演算法,就是減少網路上的小包數量, PHP 5.2.1 有效,編譯時需要 libcurl 7.11.2 及以上,
CURLOPT_FTPASCII CURLOPT_TRANSFERTEXT 的別名,
CURLOPT_FTPLISTONLY TRUE 時只列出 FTP 目錄的名字,
CURLOPT_HEADER 啟用時會將頭檔案的資訊作為資料流輸出,
CURLINFO_HEADER_OUT TRUE 時追蹤句柄的請求字串, 從 PHP 5.1.3 開始可用,CURLINFO_ 的前綴是有意的(intentional),
CURLOPT_HTTPGET TRUE 時會設定 HTTP 的 method 為 GET,由于默認是 GET,所以只有 method 被修改時才需要這個選項,
CURLOPT_HTTPPROXYTUNNEL TRUE 會通過指定的 HTTP 代理來傳輸,
CURLOPT_MUTE TRUE 時將完全靜默,無論是何 cURL 函式, 在 cURL 7.15.5 中移出(可以使用 CURLOPT_RETURNTRANSFER 作為代替)
CURLOPT_NETRC TRUE 時,在連接建立時,訪問~/.netrc檔案獲取用戶名和密碼來連接遠程站點,
CURLOPT_NOBODY TRUE 時將不輸出 BODY 部分,同時 Mehtod 變成了 HEAD,修改為 FALSE 時不會變成 GET,
CURLOPT_NOPROGRESS TRUE 時關閉 cURL 的傳輸進度,Note:PHP 默認自動設定此選項為 TRUE,只有為了除錯才需要改變設定,
CURLOPT_NOSIGNAL TRUE 時忽略所有的 cURL 傳遞給 PHP 進行的信號,在 SAPI 多執行緒傳輸時此項被默認啟用,所以超時選項仍能使用, cURL 7.10時被加入,
CURLOPT_PATH_AS_IS TRUE 不處理 dot dot sequences (即 ../ ) cURL 7.42.0 時被加入, PHP 7.0.7 起有效,
CURLOPT_PIPEWAIT TRUE 則等待 pipelining/multiplexing, cURL 7.43.0 時被加入, PHP 7.0.7 起有效,
CURLOPT_POST TRUE 時會發送 POST 請求,型別為:application/x-www-form-urlencoded,是 HTML 表單提交時最常見的一種,
CURLOPT_PUT TRUE 時允許 HTTP 發送檔案,要被 PUT 的檔案必須在 CURLOPT_INFILECURLOPT_INFILESIZE 中設定,
CURLOPT_RETURNTRANSFER TRUE 將curl_exec()獲取的資訊以字串回傳,而不是直接輸出,
CURLOPT_SAFE_UPLOAD TRUE 禁用 @ 前綴在 CURLOPT_POSTFIELDS 中發送檔案, 意味著 @ 可以在欄位中安全得使用了, 可使用 CURLFile 作為上傳的代替, PHP 5.5.0 中添加,默認值 FALSE, PHP 5.6.0 改默認值為 TRUE,. PHP 7 洗掉了此選項, 必須使用 CURLFile interface 來上傳檔案,
CURLOPT_SASL_IR TRUE 開啟,收到首包(first packet)后發送初始的回應(initial response), cURL 7.31.10 中添加,自 PHP 7.0.7 起有效,
CURLOPT_SSL_ENABLE_ALPN FALSE 禁用 SSL 握手中的 ALPN (如果 SSL 后端的 libcurl 內建支持) 用于協商到 http2, cURL 7.36.0 中增加, PHP 7.0.7 起有效,
CURLOPT_SSL_ENABLE_NPN FALSE 禁用 SSL 握手中的 NPN(如果 SSL 后端的 libcurl 內建支持),用于協商到 http2, cURL 7.36.0 中增加, PHP 7.0.7 起有效,
CURLOPT_SSL_VERIFYPEER FALSE 禁止 cURL 驗證對等證書(peer's certificate),要驗證的交換證書可以在 CURLOPT_CAINFO 選項中設定,或在 CURLOPT_CAPATH中設定證書目錄, 自cURL 7.10開始默認為 TRUE,從 cURL 7.10開始默認系結安裝,
CURLOPT_SSL_VERIFYSTATUS TRUE 驗證證書狀態, cURL 7.41.0 中添加, PHP 7.0.7 起有效,
CURLOPT_TCP_FASTOPEN TRUE 開啟 TCP Fast Open, cURL 7.49.0 中添加, PHP 7.0.7 起有效,
CURLOPT_TFTP_NO_OPTIONS TRUE 不發送 TFTP 的 options 請求, 自 cURL 7.48.0 添加, PHP 7.0.7 起有效,
CURLOPT_TRANSFERTEXT TRUE 對 FTP 傳輸使用 ASCII 模式,對于LDAP,它檢索純文本資訊而非 HTML,在 Windows 系統上,系統不會把 STDOUT 設定成二進制 模式,
CURLOPT_UNRESTRICTED_AUTH TRUE 在使用CURLOPT_FOLLOWLOCATION重定向 header 中的多個 location 時繼續發送用戶名和密碼資訊,哪怕主機名已改變,
CURLOPT_UPLOAD TRUE 準備上傳,
CURLOPT_VERBOSE TRUE 會輸出所有的資訊,寫入到STDERR,或在CURLOPT_STDERR中指定的檔案,

以下 optionvalue應該被設定成 integer:

選項 設定value 備注
CURLOPT_BUFFERSIZE 每次讀入的緩沖的尺寸,當然不保證每次都會完全填滿這個尺寸, 在cURL 7.10中被加入,
CURLOPT_CLOSEPOLICY CURLCLOSEPOLICY_\* 中的一個,Note:此選項已被廢棄,它不會被實作,永遠不會有效果啦, PHP 5.6.0 中移除,
CURLOPT_CONNECTTIMEOUT 在嘗試連接時等待的秒數,設定為0,則無限等待,
CURLOPT_CONNECTTIMEOUT_MS 嘗試連接等待的時間,以毫秒為單位,設定為0,則無限等待, 如果 libcurl 編譯時使用系統標準的名稱決議器( standard system name resolver),那部分的連接仍舊使用以秒計的超時解決方案,最小超時時間還是一秒鐘, 在 cURL 7.16.2 中被加入,從 PHP 5.2.3 開始可用,
CURLOPT_DNS_CACHE_TIMEOUT 設定在記憶體中快取 DNS 的時間,默認為120秒(兩分鐘),
CURLOPT_EXPECT_100_TIMEOUT_MS 超時預計: 100毫秒內的 continue 回應 默認為 1000 毫秒, cURL 7.36.0 中添加,自 PHP 7.0.7 有效,
CURLOPT_FTPSSLAUTH FTP驗證方式(啟用的時候):CURLFTPAUTH_SSL (首先嘗試SSL),CURLFTPAUTH_TLS (首先嘗試TLS)或CURLFTPAUTH_DEFAULT (讓cURL 自個兒決定), 在 cURL 7.12.2 中被加入,
CURLOPT_HEADEROPT How to deal with headers. One of the following constants: CURLHEADER_UNIFIED: the headers specified in CURLOPT_HTTPHEADER will be used in requests both to servers and proxies. With this option enabled, CURLOPT_PROXYHEADER will not have any effect. CURLHEADER_SEPARATE: makes CURLOPT_HTTPHEADER headers only get sent to a server and not to a proxy. Proxy headers must be set with CURLOPT_PROXYHEADER to get used. Note that if a non-CONNECT request is sent to a proxy, libcurl will send both server headers and proxy headers. When doing CONNECT, libcurl will send CURLOPT_PROXYHEADER headers only to the proxy and then CURLOPT_HTTPHEADER headers only to the server. Defaults to CURLHEADER_SEPARATE as of cURL 7.42.1, and CURLHEADER_UNIFIED before. Added in cURL 7.37.0. Available since PHP 7.0.7.
CURLOPT_HTTP_VERSION CURL_HTTP_VERSION_NONE (默認值,讓 cURL 自己判斷使用哪個版本),CURL_HTTP_VERSION_1_0 (強制使用 HTTP/1.0)或CURL_HTTP_VERSION_1_1 (強制使用 HTTP/1.1),
CURLOPT_HTTPAUTH 使用的 HTTP 驗證方法,選項有: CURLAUTH_BASICCURLAUTH_DIGESTCURLAUTH_GSSNEGOTIATECURLAUTH_NTLMCURLAUTH_ANYCURLAUTH_ANYSAFE,可以使用 * * 位域(OR)運算子結合多個值,cURL 會讓服務器選擇受支持的方法,并選擇最好的那個,CURLAUTH_ANY是 *CURLAUTH_BASIC
CURLOPT_INFILESIZE 希望傳給遠程站點的檔案尺寸,位元組(byte)為單位, 注意無法用這個選項阻止 libcurl 發送更多的資料,確切發送什么取決于 CURLOPT_READFUNCTION
CURLOPT_LOW_SPEED_LIMIT 傳輸速度,每秒位元組(bytes)數,根據CURLOPT_LOW_SPEED_TIME秒數統計是否因太慢而取消傳輸,
CURLOPT_LOW_SPEED_TIME 當傳輸速度小于CURLOPT_LOW_SPEED_LIMIT時(bytes/sec),PHP會判斷是否因太慢而取消傳輸,
CURLOPT_MAXCONNECTS 允許的最大連接數量,達到限制時,會通過CURLOPT_CLOSEPOLICY決定應該關閉哪些連接,
CURLOPT_MAXREDIRS 指定最多的 HTTP 重定向次數,這個選項是和CURLOPT_FOLLOWLOCATION一起使用的,
CURLOPT_PORT 用來指定連接埠,
CURLOPT_POSTREDIR 位掩碼, 1 (301 永久重定向), 2 (302 Found) 和 4 (303 See Other) 設定 CURLOPT_FOLLOWLOCATION 時,什么情況下需要再次 HTTP POST 到重定向網址, cURL 7.19.1 中添加,PHP 5.3.2 開始可用,
CURLOPT_PROTOCOLS CURLPROTO_\*的位掩碼, 啟用時,會限制 libcurl 在傳輸程序中可使用哪些協議, 這將允許你在編譯libcurl時支持眾多協議,但是限制只用允許的子集,默認 libcurl 將使用所有支持的協議, 參見CURLOPT_REDIR_PROTOCOLS,可用的協議選項為: CURLPROTO_HTTPCURLPROTO_HTTPSCURLPROTO_FTPCURLPROTO_FTPSCURLPROTO_SCPCURLPROTO_SFTPCURLPROTO_TELNETCURLPROTO_LDAPCURLPROTO_LDAPSCURLPROTO_DICTCURLPROTO_FILECURLPROTO_TFTPCURLPROTO_ALL 在 cURL 7.19.4 中被加入,
CURLOPT_PROXYAUTH HTTP 代理連接的驗證方式,使用在CURLOPT_HTTPAUTH中的位掩碼, 當前僅僅支持 CURLAUTH_BASICCURLAUTH_NTLM 在 cURL 7.10.7 中被加入,
CURLOPT_PROXYPORT 代理服務器的埠,埠也可以在CURLOPT_PROXY中設定,
CURLOPT_PROXYTYPE 可以是 CURLPROXY_HTTP (默認值) CURLPROXY_SOCKS4CURLPROXY_SOCKS5CURLPROXY_SOCKS4ACURLPROXY_SOCKS5_HOSTNAME 在 cURL 7.10 中被加入,
CURLOPT_REDIR_PROTOCOLS CURLPROTO_\* 值的位掩碼,如果被啟用,位掩碼會限制 libcurl 在 CURLOPT_FOLLOWLOCATION開啟時,使用的協議, 默認允許除 FILE 和 SCP 外所有協議, 這和 7.19.4 前的版本無條件支持所有支持的協議不同,關于協議常量,請參照CURLOPT_PROTOCOLS 在 cURL 7.19.4 中被加入,
CURLOPT_RESUME_FROM 在恢復傳輸時,傳遞位元組為單位的偏移量(用來斷點續傳),
CURLOPT_SSL_OPTIONS Set SSL behavior options, which is a bitmask of any of the following constants: CURLSSLOPT_ALLOW_BEAST: do not attempt to use any workarounds for a security flaw in the SSL3 and TLS1.0 protocols. CURLSSLOPT_NO_REVOKE: disable certificate revocation checks for those SSL backends where such behavior is present. Added in cURL 7.25.0. Available since PHP 7.0.7.
CURLOPT_SSL_VERIFYHOST 設定為 1 是檢查服務器SSL證書中是否存在一個公用名(common name),譯者注:公用名(Common Name)一般來講就是填寫你將要申請SSL證書的域名 (domain)或子域名(sub domain), 設定成 2,會檢查公用名是否存在,并且是否與提供的主機名匹配, 0 為不檢查名稱, 在生產環境中,這個值應該是 2(默認值), 1 的支持在 cURL 7.28.1 中被洗掉了,
CURLOPT_SSLVERSION CURL_SSLVERSION_DEFAULT (0), CURL_SSLVERSION_TLSv1 (1), CURL_SSLVERSION_SSLv2 (2), CURL_SSLVERSION_SSLv3 (3), CURL_SSLVERSION_TLSv1_0 (4), CURL_SSLVERSION_TLSv1_1 (5) , CURL_SSLVERSION_TLSv1_2 (6) 中的其中一個,Note:你最好別設定這個值,讓它使用默認值, 設定為 2 或 3 比較危險,在 SSLv2 和 SSLv3 中有弱點存在,
CURLOPT_STREAM_WEIGHT 設定 stream weight 數值 ( 1 和 256 之間的數字). cURL 7.46.0 中添加,自 PHP 7.0.7 起有效,
CURLOPT_TIMECONDITION 設定如何對待 CURLOPT_TIMEVALUE, 使用 CURL_TIMECOND_IFMODSINCE,僅在頁面 CURLOPT_TIMEVALUE 之后修改,才回傳頁面,沒有修改則回傳 "304 Not Modified" 頭,假設設定了 CURLOPT_HEADERTRUECURL_TIMECOND_IFUNMODSINCE則起相反的效果, 默認為 CURL_TIMECOND_IFMODSINCE
CURLOPT_TIMEOUT 允許 cURL 函式執行的最長秒數,
CURLOPT_TIMEOUT_MS 設定cURL允許執行的最長毫秒數, 如果 libcurl 編譯時使用系統標準的名稱決議器( standard system name resolver),那部分的連接仍舊使用以秒計的超時解決方案,最小超時時間還是一秒鐘, 在 cURL 7.16.2 中被加入,從 PHP 5.2.3 起可使用,
CURLOPT_TIMEVALUE 秒數,從 1970年1月1日開始,這個時間會被 CURLOPT_TIMECONDITION使,默認使用CURL_TIMECOND_IFMODSINCE
CURLOPT_MAX_RECV_SPEED_LARGE 如果下載速度超過了此速度(以每秒位元組數來統計) ,即傳輸程序中累計的平均數,傳輸就會降速到這個引數的值,默認不限速, cURL 7.15.5 中添加, PHP 5.4.0 有效,
CURLOPT_MAX_SEND_SPEED_LARGE 如果上傳的速度超過了此速度(以每秒位元組數來統計),即傳輸程序中累計的平均數 ,傳輸就會降速到這個引數的值,默認不限速, cURL 7.15.5 中添加, PHP 5.4.0 有效,
CURLOPT_SSH_AUTH_TYPES A bitmask consisting of one or more of CURLSSH_AUTH_PUBLICKEY, CURLSSH_AUTH_PASSWORD, CURLSSH_AUTH_HOST, CURLSSH_AUTH_KEYBOARD. Set to CURLSSH_AUTH_ANY to let libcurl pick one. cURL 7.16.1 中添加,
CURLOPT_IPRESOLVE 允許程式選擇想要決議的 IP 地址類別,只有在地址有多種 ip 類別的時候才能用,可以的值有: CURL_IPRESOLVE_WHATEVERCURL_IPRESOLVE_V4CURL_IPRESOLVE_V6,默認是 CURL_IPRESOLVE_WHATEVER cURL 7.10.8 中添加,
CURLOPT_FTP_FILEMETHOD 告訴 curl 使用哪種方式來獲取 FTP(s) 服務器上的檔案,可能的值有: CURLFTPMETHOD_MULTICWDCURLFTPMETHOD_NOCWDCURLFTPMETHOD_SINGLECWD cURL 7.15.1 中添加, PHP 5.3.0 起有效,

對于下面的這些optionvalue應該被設定成 string:

選項 設定的value 備注
CURLOPT_CAINFO 一個保存著1個或多個用來讓服務端驗證的證書的檔案名,這個引數僅僅在和CURLOPT_SSL_VERIFYPEER一起使用時才有意義, . 可能需要絕對路徑,
CURLOPT_CAPATH 一個保存著多個CA證書的目錄,這個選項是和CURLOPT_SSL_VERIFYPEER一起使用的,
CURLOPT_COOKIE 設定 HTTP 請求中"Cookie: "部分的內容,多個 cookie 用分號分隔,分號后帶一個空格(例如, "fruit=apple; colour=red"),
CURLOPT_COOKIEFILE 包含 cookie 資料的檔案名,cookie 檔案的格式可以是 Netscape 格式,或者只是純 HTTP 頭部風格,存入檔案,如果檔案名是空的,不會加載 cookie,但 cookie 的處理仍舊啟用,
CURLOPT_COOKIEJAR 連接結束后,比如,呼叫 curl_close 后,保存 cookie 資訊的檔案,
CURLOPT_CUSTOMREQUEST HTTP 請求時,使用自定義的 Method 來代替"GET""HEAD",對 "DELETE" 或者其他更隱蔽的 HTTP 請求有用, 有效值如 "GET""POST""CONNECT"等等;也就是說,不要在這里輸入整行 HTTP 請求,例如輸入"GET /index.html HTTP/1.0\r\n\r\n"是不正確的,Note:不確定服務器支持這個自定義方法則不要使用它,
CURLOPT_DEFAULT_PROTOCOL URL不帶協議的時候,使用的默認協議, cURL 7.45.0 中添加,自 PHP 7.0.7 起有效,
CURLOPT_DNS_INTERFACE Set the name of the network interface that the DNS resolver should bind to. This must be an interface name (not an address). Added in cURL 7.33.0. Available since PHP 7.0.7.
CURLOPT_DNS_LOCAL_IP4 Set the local IPv4 address that the resolver should bind to. The argument should contain a single numerical IPv4 address as a string. Added in cURL 7.33.0. Available since PHP 7.0.7.
CURLOPT_DNS_LOCAL_IP6 Set the local IPv6 address that the resolver should bind to. The argument should contain a single numerical IPv6 address as a string. Added in cURL 7.33.0. Available since PHP 7.0.7.
CURLOPT_EGDSOCKET 類似CURLOPT_RANDOM_FILE,除了一個Entropy Gathering Daemon套接字,
CURLOPT_ENCODING HTTP請求頭中"Accept-Encoding: "的值, 這使得能夠解碼回應的內容, 支持的編碼有"identity""deflate""gzip",如果為空字串"",會發送所有支持的編碼型別, 在 cURL 7.10 中被加入,
CURLOPT_FTPPORT 這個值將被用來獲取供FTP"PORT"指令所需要的IP地址, "PORT" 指令告訴遠程服務器連接到我們指定的IP地址,這個字串可以是純文本的IP地址、主機名、一個網路介面名(UNIX下)或者只是一個'-'來使用默認的 IP 地址,
CURLOPT_INTERFACE 發送的網路介面(interface),可以是一個介面名、IP 地址或者是一個主機名,
CURLOPT_KEYPASSWD 使用 CURLOPT_SSLKEYCURLOPT_SSH_PRIVATE_KEYFILE 私鑰時候的密碼, 在 cURL 7.16.1 中添加,
CURLOPT_KRB4LEVEL KRB4 (Kerberos 4) 安全級別,下面的任何值都是有效的(從低到高的順序):"clear""safe""confidential""private".,如果字串以上這些,將使用"private", 這個選項設定為 NULL 時將禁用 KRB4 安全認證,目前 KRB4 安全認證只能用于 FTP 傳輸,
CURLOPT_LOGIN_OPTIONS Can be used to set protocol specific login options, such as the preferred authentication mechanism via "AUTH=NTLM" or "AUTH=*", and should be used in conjunction with the CURLOPT_USERNAME option. Added in cURL 7.34.0. Available since PHP 7.0.7.
CURLOPT_PINNEDPUBLICKEY Set the pinned public key. The string can be the file name of your pinned public key. The file format expected is "PEM" or "DER". The string can also be any number of base64 encoded sha256 hashes preceded by "sha256//" and separated by ";". Added in cURL 7.39.0. Available since PHP 7.0.7.
CURLOPT_POSTFIELDS 全部資料使用HTTP協議中的 "POST" 操作來發送, 要發送檔案,在檔案名前面加上@前綴并使用完整路徑, 檔案型別可在檔案名后以 ';type=mimetype' 的格式指定, 這個引數可以是 urlencoded 后的字串,類似'para1=val1&para2=val2&...',也可以使用一個以欄位名為鍵值,欄位資料為值的陣列, 如果value是一個陣列,Content-Type頭將會被設定成multipart/form-data, 從 PHP 5.2.0 開始,使用 @ 前綴傳遞檔案時,value 必須是個陣列, 從 PHP 5.5.0 開始, @ 前綴已被廢棄,檔案可通過 CURLFile 發送, 設定 CURLOPT_SAFE_UPLOADTRUE 可禁用 @ 前綴發送檔案,以增加安全性,
CURLOPT_PRIVATE Any data that should be associated with this cURL handle. This data can subsequently be retrieved with the CURLINFO_PRIVATE option of curl_getinfo(). cURL does nothing with this data. When using a cURL multi handle, this private data is typically a unique key to identify a standard cURL handle. Added in cURL 7.10.3.
CURLOPT_PROXY HTTP 代理通道,
CURLOPT_PROXY_SERVICE_NAME 代理驗證服務的名稱, cURL 7.34.0 中添加,PHP 7.0.7 起有效,
CURLOPT_PROXYUSERPWD 一個用來連接到代理的"[username]:[password]"格式的字串,
CURLOPT_RANDOM_FILE 一個被用來生成 SSL 亂數種子的檔案名,
CURLOPT_RANGE "X-Y"的形式,其中X和Y都是可選項獲取資料的范圍,以位元組計,HTTP傳輸執行緒也支持幾個這樣的重復項中間用逗號分隔如"X-Y,N-M"
CURLOPT_REFERER 在HTTP請求頭中"Referer: "的內容,
CURLOPT_SERVICE_NAME 驗證服務的名稱 cURL 7.43.0 起添加,自 PHP 7.0.7 有效,
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 包含 32 位長的 16 進制數值,這個字串應該是遠程主機公鑰(public key) 的 MD5 校驗值,在不匹配的時候 libcurl 會拒絕連接, 此選項僅用于 SCP 和 SFTP 的傳輸, cURL 7.17.1 中添加,
CURLOPT_SSH_PUBLIC_KEYFILE The file name for your public key. If not used, libcurl defaults to $HOME/.ssh/id_dsa.pub if the HOME environment variable is set, and just "id_dsa.pub" in the current directory if HOME is not set. Added in cURL 7.16.1.
CURLOPT_SSH_PRIVATE_KEYFILE The file name for your private key. If not used, libcurl defaults to $HOME/.ssh/id_dsa if the HOME environment variable is set, and just "id_dsa" in the current directory if HOME is not set. If the file is password-protected, set the password with CURLOPT_KEYPASSWD. Added in cURL 7.16.1.
CURLOPT_SSL_CIPHER_LIST 一個SSL的加密演算法串列,例如RC4-SHATLSv1都是可用的加密串列,
CURLOPT_SSLCERT 一個包含 PEM 格式證書的檔案名,
CURLOPT_SSLCERTPASSWD 使用CURLOPT_SSLCERT證書需要的密碼,
CURLOPT_SSLCERTTYPE 證書的型別,支持的格式有"PEM" (默認值), "DER""ENG" 在 cURL 7.9.3中 被加入,
CURLOPT_SSLENGINE 用來在CURLOPT_SSLKEY中指定的SSL私鑰的加密引擎變數,
CURLOPT_SSLENGINE_DEFAULT 用來做非對稱加密操作的變數,
CURLOPT_SSLKEY 包含 SSL 私鑰的檔案名,
CURLOPT_SSLKEYPASSWD CURLOPT_SSLKEY中指定了的SSL私鑰的密碼,Note:由于這個選項包含了敏感的密碼資訊,記得保證這個PHP腳本的安全,
CURLOPT_SSLKEYTYPE CURLOPT_SSLKEY中規定的私鑰的加密型別,支持的密鑰型別為"PEM"(默認值)、"DER""ENG"
CURLOPT_UNIX_SOCKET_PATH 使用 Unix 套接字作為連接,并用指定的 string 作為路徑, cURL 7.40.0 中添加, PHP 7.0.7 起有效,
CURLOPT_URL 需要獲取的 URL 地址,也可以在curl_init() 初始化會話的時候,
CURLOPT_USERAGENT 在HTTP請求中包含一個"User-Agent: "頭的字串,
CURLOPT_USERNAME 驗證中使用的用戶名, cURL 7.19.1 中添加,PHP 5.5.0 起有效,
CURLOPT_USERPWD 傳遞一個連接中需要的用戶名和密碼,格式為:"[username]:[password]"
CURLOPT_XOAUTH2_BEARER 指定 OAuth 2.0 access token, cURL 7.33.0 中添加,自 PHP 7.0.7 添加,

以下optionvalue應該被設定成陣列:

選項 可選value 備注
CURLOPT_CONNECT_TO 連接到指定的主機和埠,替換 URL 中的主機和埠,接受指定字串格式的陣列: HOST:PORT:CONNECT-TO-HOST:CONNECT-TO-PORT cURL 7.49.0 中添加, PHP 7.0.7 起有效,
CURLOPT_HTTP200ALIASES HTTP 200 回應碼陣列,陣列中的回應碼被認為是正確的回應,而非錯誤, 在 cURL 7.10.3 中被加入,
CURLOPT_HTTPHEADER 設定 HTTP 頭欄位的陣列,格式: array('Content-type: text/plain', 'Content-length: 100')
CURLOPT_POSTQUOTE 在 FTP 請求執行完成后,在服務器上執行的一組array格式的 FTP 命令,
CURLOPT_PROXYHEADER 傳給代理的自定義 HTTP 頭, cURL 7.37.0 中添加,自 PHP 7.0.7 添加,
CURLOPT_QUOTE 一組先于 FTP 請求的在服務器上執行的FTP命令,
CURLOPT_RESOLVE 提供自定義地址,指定了主機和埠, 包含主機、埠和 ip 地址的字串,組成 array 的,每個元素以冒號分隔,格式: array("example.com:80:127.0.0.1") 在 cURL 7.21.3 中添加,自 PHP 5.5.0 起可用,

以下 optionvalue應該被設定成流資源 (例如使用fopen()):

選項 可選value
CURLOPT_FILE 設定輸出檔案,默認為STDOUT (瀏覽器),
CURLOPT_INFILE 上傳檔案時需要讀取的檔案,
CURLOPT_STDERR 錯誤輸出的地址,取代默認的STDERR
CURLOPT_WRITEHEADER 設定 header 部分內容的寫入的檔案地址,

以下optionvalue應該是有效的函式或者閉包:

選項 value
CURLOPT_HEADERFUNCTION 設定一個回呼函式,這個函式有兩個引數,第一個是cURL的資源句柄,第二個是輸出的 header 資料,header資料的輸出必須依賴這個函式,回傳已寫入的資料大小,
CURLOPT_PASSWDFUNCTION 設定一個回呼函式,有三個引數,第一個是cURL的資源句柄,第二個是一個密碼提示符,第三個引數是密碼長度允許的最大值,回傳密碼的值,
CURLOPT_PROGRESSFUNCTION 設定一個回呼函式,有五個引數,第一個是cURL的資源句柄,第二個是預計要下載的總位元組(bytes)數,第三個是目前下載的位元組數,第四個是預計傳輸中總上傳位元組數,第五個是目前上傳的位元組數,Note:只有設定 CURLOPT_NOPROGRESS 選項為 FALSE 時才會呼叫這個回呼函式,回傳非零值將中斷傳輸, 傳輸將設定 CURLE_ABORTED_BY_CALLBACK 錯誤,
CURLOPT_READFUNCTION 回呼函式名,該函式應接受三個引數,第一個是 cURL resource;第二個是通過選項 CURLOPT_INFILE 傳給 cURL 的 stream resource;第三個引數是最大可以讀取的資料的數量,回 調函式必須回傳一個字串,長度小于或等于請求的資料量(第三個引數),一般從傳入的 stream resource 讀取,回傳空字串作為 EOF(檔案結束) 信號,
CURLOPT_WRITEFUNCTION 回呼函式名,該函式應接受兩個引數,第一個是 cURL resource;第二個是要寫入的資料字串,數 據必須在函式中被保存, 函式必須準確回傳寫入資料的位元組數,否則傳輸會被一個錯誤所中 斷,

其他值:

Option 設定 value
CURLOPT_SHARE curl_share_init() 回傳的結果, 使 cURL 可以處理共享句柄里的資料,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/293480.html

標籤:PHP

上一篇:xml的約束

下一篇:【PHP】批量遞回修改檔案夾名或檔案名

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more