當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R curlGetHeaders 從 URL 中檢索標頭


R語言 curlGetHeaders 位於 base 包(package)。

說明

檢索受支持協議的 URL 標頭,例如‘⁠http://⁠', '⁠ftp://⁠', '⁠https://⁠' 和 '⁠ftps://⁠’。

用法

curlGetHeaders(url, redirect = TRUE, verify = TRUE,
               timeout = 0L, TLS = "")

參數

url

指定 URL 的字符串。

redirect

邏輯:應該遵循重定向嗎?

verify

邏輯:證書是否應該被驗證為有效並適用於該主機?

timeout

整數:允許請求花費的最長時間(以秒為單位)。非正值和無效值將被忽略(包括默認值)。 (添加於R4.1.0。)

TLS

字符:用於‘的 TLS 協議的最低版本⁠https://⁠’ URL:默認("")沒有超出底層的限製libcurl(通常為 1.0)。其他有效值是"1.1","1.2"(兩者都為libcurl7.34.0 及更高版本)和"1.3"(7.52.0 及更高版本),如果底層版本支持libcurl以及它使用的 SSL 庫。

細節

這報告了什麽curl -I -L或者curl -I會報告。為一個 '⁠ftp://⁠’ URL ‘headers’是數據傳輸之前客戶端和服務器之間的對話記錄。

隻會報告 500 個標題行:重定向次數限製為 20 個,因此這應該足夠了(甚至 20 個也會表明存在問題)。

如果參數 timeout 未設置為正整數,則使用默認為 60 秒的 getOption("timeout")。由於請求不能被中斷,您可能需要考慮更短的值。

要查看與服務器交互的所有詳細信息,請設置 options(internet.info = 1)

HTTP[S] 服務器可以拒絕讀取標頭的請求,有些服務器會這樣做:這將導致 status405

有關安全 URL 可能出現的問題(尤其是在 Windows 上),請參閱 download.file

不驗證證書存在安全風險,但由於僅捕獲標頭,因此風險很小。通常在瀏覽器中查看 URL 就會發現問題所在(很可能是machine-specific)。

具有整數屬性 "status" 的字符向量(last-received ‘status’ 代碼)。如果發生重定向,這將包括所有訪問過的 URL 的標頭。

有關 ‘status’ 代碼的解釋,請參閱https://en.wikipedia.org/wiki/List_of_HTTP_status_codeshttps://en.wikipedia.org/wiki/List_of_FTP_server_return_codes。成功的 FTP 連接通常具有狀態 250、257 或 350。

例子

## needs Internet access, results vary
curlGetHeaders("http://bugs.r-project.org")   ## this redirects to https://
## 2023-04: replaces slow and unreliable https://httpbin.org/status/404
curlGetHeaders("https://developer.R-project.org/inet-tests/not-found")
## returns status

也可以看看

capabilities("libcurl") 查看是否支持。 libcurlVersion 表示正在使用的 libcurl 版本。

使用optionsHTTPUserAgenttimeout

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Retrieve Headers from URLs。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。