httr相当于请求中的验证
httr equivalent to verify in requests
在 python
中,我使用 requests
通过以下方式调用 API(不幸的是无法共享 API 本身,因此很难重现):
import requests
url = url
headers = {'API-key': 'xxxxxxxxxxxxxxxx',
'Content-type': 'application/json',
'Accept': 'application/json'
}
r = requests.get(url, headers = headers, verify=False)
print(r.text)
在这里,我认为 verify=False
强制请求忽略 SSL 证书(如建议的那样 here)。这工作正常,但是我无法通过以下方式使用 httr
重现它:
library(httr)
url <- url
headers <- c('API-key' = 'xxxxxxxxxxxxxxxx',
'Content-type' = 'application/json',
'Accept' = 'application/json'
))
GET(url = url, add_headers(headers = headers)
现在,我相信 requests
代码中的 verify=False
是这里的关键,someone suggested 使用 httr 忽略 SSL 证书的方法是在之前使用 set_config()
一个请求:
httr::set_config(httr::config(ssl_verifypeer=0L, ssl_verifyhost=0L))
GET(url = url, add_headers(headers = headers))
但它不起作用。
$message
[1] "Unauthorized"
$http_status_code
[1] 401
httr::set_config(httr::config(ssl_verifypeer=0L, ssl_verifyhost=0L))
是否等同于 requests
调用中的 verify=False
?
您显示的错误消息实际上是服务器的响应。与 SSL 证书无关,因此您根本不需要禁用该检查。
问题是 add_headers
中的参数名称是 .headers
而不是 headers
。你只需要做
GET(url = url, add_headers(.headers = headers)
在 python
中,我使用 requests
通过以下方式调用 API(不幸的是无法共享 API 本身,因此很难重现):
import requests
url = url
headers = {'API-key': 'xxxxxxxxxxxxxxxx',
'Content-type': 'application/json',
'Accept': 'application/json'
}
r = requests.get(url, headers = headers, verify=False)
print(r.text)
在这里,我认为 verify=False
强制请求忽略 SSL 证书(如建议的那样 here)。这工作正常,但是我无法通过以下方式使用 httr
重现它:
library(httr)
url <- url
headers <- c('API-key' = 'xxxxxxxxxxxxxxxx',
'Content-type' = 'application/json',
'Accept' = 'application/json'
))
GET(url = url, add_headers(headers = headers)
现在,我相信 requests
代码中的 verify=False
是这里的关键,someone suggested 使用 httr 忽略 SSL 证书的方法是在之前使用 set_config()
一个请求:
httr::set_config(httr::config(ssl_verifypeer=0L, ssl_verifyhost=0L))
GET(url = url, add_headers(headers = headers))
但它不起作用。
$message
[1] "Unauthorized"
$http_status_code
[1] 401
httr::set_config(httr::config(ssl_verifypeer=0L, ssl_verifyhost=0L))
是否等同于 requests
调用中的 verify=False
?
您显示的错误消息实际上是服务器的响应。与 SSL 证书无关,因此您根本不需要禁用该检查。
问题是 add_headers
中的参数名称是 .headers
而不是 headers
。你只需要做
GET(url = url, add_headers(.headers = headers)