当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。