【问题标题】:HTTR GET works in browser, but fails in RStudioHTTR GET 在浏览器中工作,但在 RStudio 中失败
【发布时间】:2020-07-23 00:12:32
【问题描述】:

背景:

我正在使用下面的代码来获取包含一些 XML 文档的压缩文件。关于再现性的说明;端点也受 IP 限制,因此您将无法向其请求任何内容(它会超时)。

GET("https://dpsv3.doffin.no/Doffin/notices/Download/2020-07-17",
    authenticate(user, passwd),
    accept = "application/zip")

从 R 中使用它;我收到 403 拒绝访问。如果我在 Postman 中使用相同的,我会得到文件。如果我在浏览器中转到https://dpsv3.doffin.no/Doffin/notices/Download/2020-07-17,我会收到一个用户/密码提示,一旦输入,我就会得到文件。

问题

我的代码有什么问题吗?据我所知,它应该可以工作,并且类似的代码可以与其他 API 一起工作。对测试环境使用相同的代码是可行的;如果我为测试环境输入了错误的密码,则会收到 401 错误。据此,我收集到我的呼叫的身份验证部分没有在端点处处理,但我在这里看不到任何错误。有什么意见吗?

【问题讨论】:

  • 我猜你的浏览器中的 Postman 也会传递一些在你输入用户名和密码时设置的身份验证 cookie。很难说,因为链接对我没有任何作用。有许多不同的方法可以对网站进行身份验证,authenticate() 默认使用“基本”身份验证。是否有任何关于网站实际使用的文档?
  • 它正在使用基本。

标签: r json api httr


【解决方案1】:

Soo,我想我找到了问题所在。将我的代码更改为以下作品:

GET("https://dpsv3.doffin.no/Doffin/notices/Download/2020-07-21",
    authenticate(user, passwd),
    accept = "application/zip",
    user_agent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"))

我不知道为什么,但我猜端点可能有限制?在任一情况下;它有效,所以我很高兴。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多