使用 httr get 时出现错误 401

Posted

技术标签:

【中文标题】使用 httr get 时出现错误 401【英文标题】:Getting error 401 when using httr get 【发布时间】:2017-08-14 09:26:27 【问题描述】:

我正在尝试使用 R 通过 httr GET 访问我们组织中的网页。

但是我收到一条消息“由于凭据无效而拒绝访问”。 我可以手动执行所需的操作。 当我使用 Internet Explorer 访问该网站时,似乎授权是自动完成的,但是在尝试通过 R 执行相同操作时访问被阻止。

这就是我正在尝试的方式: (我无法提供确切的地址,因为它是一个内部网地址,只能在组织内部使用,与代理地址相同)

library(httr)
r <- GET(myurl, useproxy(myproxyid, 80), verbose())

-> GET http: //myurl
-> host: xxx
-> User-Agent : libcurl...
-> Accept-Encoding: gzip, deflate
-> Proxy-Connection: Keep-Alive
-> Accept: application/json, text/xml, application/xml, *.*
<- HTTP/1.1 401 Unauthorized
<- Content-Type: text/html
<- Server: Microsoft-IIS/8.5
<- WWW-Authenticate: Negotiate
<- WWW-Authenticate: NTLM
<- X-Powered-By: ASP.NET

r

Response [myurl]
Date
Status: 401
...
<title>401 - Unauthorized: Access is denied due to invalid credentials.</title>

....

我知道我必须以某种方式将我的凭据与我的请求一起发送。 是否有可能以某种方式使用自动身份验证?

谢谢 拉斐尔

【问题讨论】:

【参考方案1】:

好的

我终于成功了。

我必须像这样向我的 get 命令提供身份验证数据:

library(httr)
r <- GET(myurl, 
         useproxy(myproxyid, 80), 
         verbose(), 
         authenticate(user = "myuserid", password = "mypassword", type = "ntlm"))

希望对大家有帮助

谢谢

拉斐尔

【讨论】:

请问您是如何获得代理详细信息的?我在同一条船上,但我不知道我的组织详细信息是什么,可以通过检查我通常输入凭据的网站找到吗?

以上是关于使用 httr get 时出现错误 401的主要内容,如果未能解决你的问题,请参考以下文章

执行带有axios的GET请求时出现401错误

向 Spotify API 发出 PUT 请求时出现 401 错误

使用 rapidapi 时出现 401 Unauthorized 错误,这里是 api doc 的截图

尝试通过 API 删除 gmail 邮件时出现 401 错误

尝试使用其 API 在 Spotify 中创建播放列表时出现“请求失败,状态码为 401”错误

使用 Coldfusion/Railo 向 Mailchimp API v3.0 发送 PUT 请求时出现 401 未经授权的错误