首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >httr等同于请求中的验证

httr等同于请求中的验证
EN

Stack Overflow用户
提问于 2019-05-20 21:37:09
回答 1查看 393关注 0票数 1

python中,我使用requests以如下方式调用API (不幸的是,无法共享API本身,因此很难重现):

代码语言:javascript
复制
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以下面的方式重现它:

代码语言:javascript
复制
 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()

代码语言:javascript
复制
httr::set_config(httr::config(ssl_verifypeer=0L, ssl_verifyhost=0L))

GET(url = url, add_headers(headers = headers))

但它不起作用。

代码语言:javascript
复制
$message
[1] "Unauthorized"

$http_status_code
[1] 401

httr::set_config(httr::config(ssl_verifypeer=0L, ssl_verifyhost=0L))等同于requests调用中的verify=False吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-21 21:35:25

您显示的错误消息实际上是来自服务器的响应。它与SSL证书无关,所以您根本不需要禁用该检查。

问题是add_headers中参数的名称是.headers,而不是headers。你只需要做

代码语言:javascript
复制
GET(url = url, add_headers(.headers = headers)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56222109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档