使用 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的主要内容,如果未能解决你的问题,请参考以下文章
向 Spotify API 发出 PUT 请求时出现 401 错误
使用 rapidapi 时出现 401 Unauthorized 错误,这里是 api doc 的截图
尝试通过 API 删除 gmail 邮件时出现 401 错误
尝试使用其 API 在 Spotify 中创建播放列表时出现“请求失败,状态码为 401”错误
使用 Coldfusion/Railo 向 Mailchimp API v3.0 发送 PUT 请求时出现 401 未经授权的错误