httr 有时会将 URL 中的“%”替换为“%25”

2024-01-13

使用时httr::GET,在某些查询中它会替换%具有安全代表%25,但在其他查询中则不然。我找不到任何规则可以实现这种情况。

我正在使用 httr 1.4.1

示例查询在哪里%被替换(请注意错误代码,并且输入的 URL 与返回的响应对象中的 URL 不同):

> httr::GET("jira.spring.io/rest/api/latest/search?jql=project=Spring%20Framework&startAt=0")
Response [https://jira.spring.io/rest/api/latest/search?jql=project=Spring%2520Framework&startAt=0]
  Date: 2020-01-16 22:57
  Status: 400
  Content-Type: application/json;charset=UTF-8
  Size: 196 B

查询未替换的位置(没有错误,响应中的 URL 与输入的相同):

> httr::GET("issues.jenkins-ci.org/rest/api/latest/search?jql=project='WEBSITE'%20OR%20project='Infrastructure'&startAt=0")
Response [https://issues.jenkins-ci.org/rest/api/latest/search?jql=project='WEBSITE'%20OR%20project='Infrastructure'&startAt=0]
  Date: 2020-01-16 23:02
  Status: 200
  Content-Type: application/json;charset=UTF-8
  Size: 430 kB

到底是怎么回事?这是 httr 中的错误吗?或者我应该改变一些参数GET() call?


tldr; 将 HTTPS 请求与 jira.spring.io 结合使用以避免协议升级失败。


这不是 R/HTTR 问题。这是网站。比较 HTTP(“失败,神秘 %25”)和 HTTPS(“成功”)的结果:

  • {“errorMessages”:[“JQL 查询中的错误:字符 '%' 是保留的 JQL 字符。您必须将其括在字符串中或使用转义符 '\u0025' 代替。(第 1 行,字符 15)”] ,“错误”:{}}

  • {"errorMessages":["JQL 查询中出现错误:需要 'OR' 或 'AND',但得到的是 'Framework'。(第 1 行,第 16 字符)"],"errors":{}}

HTTP -> HTTPS 重定向协议升级中似乎存在“故障”,其响应标头如下:

Status Code: 301 Moved Permanently
Location: https://jira.spring.io/rest/api/latest/search?jql=project=Spring%252520Framework&startAt=0
                                                                          ^^^^^

因此解决方案是使用 HTTPS 端点并避开奇怪的目标位置..

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

httr 有时会将 URL 中的“%”替换为“%25” 的相关文章

随机推荐

  • Python SMTP 错误 10060

    有人可以给我一些关于为什么会出现这种情况的见解吗 mailServer smtplib SMTP smtp gmail com 587 和这个 mailServer smtplib SMTP smtp gmail com 587 正在说这样
  • 如何在 Team City 中运行所有 NUnit 测试?

    我们每次提交时都使用 TeamCity 6 0 构建 VS C 解决方案 构建完成后 另一个测试 TC 项目就会运行 为了让开发人员可以添加 删除 编辑 VS 单元测试项目 如何让 TeamCity 使用 sln 文件或搜索测试 dll 我
  • R中的模糊外连接/合并

    我有 2 个数据集 想要进行模糊连接 这是两个数据集 library data table data1 dt1 lt fread NAME State type ABERCOMBIE TOWNSHIP ND TS ABERDEEN TOWN
  • MacOS 终端:如何使用第二个 ssh 密钥?

    我正在 MacOS 上工作 想要使用第二个 ssh 密钥进行 SSH Git 登录 我在 ssh 中有两个密钥对 id rsa id rsa pub id rsa gitlab id rsa gitlab pub id rsa 和 id r
  • 如何获取 SLURM 数组作业中失败和已完成作业的计数

    我正在使用 slurm 运行多个数组作业 对于给定的数组作业 ID 假设为 885881 我想列出失败作业和已完成作业的计数 像这样的事情 Input
  • async 是否会使其中的所有内容异步?

    据 MDN 报道 async 函数声明定义了一个异步函数 我理解它是因为该函数将被视为异步进程 就像setTimeout或一些数据库请求 例如 在下面的示例中 进程应在数字之间的某个位置输出 main let func2 async gt
  • FiPy 中的固定通量边界条件

    我对此主题有一个后续问题FyPi 中的耦合非线性方程 https stackoverflow com questions 62640821 coupled non linear equations in fypi 当对所有变量使用诺依曼边界
  • 带镀铬的背景中心(错误)

    我有一张居中的背景图像 Chrome 显示偏移一个像素 CSS container background url images header jpg no repeat scroll 50 transparent width 100 hea
  • EF CORE 中的 DbFunctions.TruncateTime LINQ 等效项

    我的 net 应用程序中有以下功能正常的 LINQ public ActionResult Index Dictionary
  • 如何在 SQL Server 中创建参数化 XPath 查询?

    我正在尝试在 SQL Server 中编写一个参数化查询 该查询使用参数值作为 XPath 的一部分 但它似乎没有按照我期望的方式工作 这是我的样本 create table example xmltest xml declare Lang
  • 如何添加本地项目(不是 jar)作为 Maven 项目的依赖项

    我有两个 Maven 项目 我已将它们作为两个模块添加到一个 Intellij Idea 的项目中 项目 B 依赖于项目 A 以下是其 pom xml 文件的简化版本 项目A
  • Android 相机 - 预览尺寸、图片尺寸、裁剪和扭曲

    我的应用程序需要以纵向模式捕获一些给定尺寸 比如说宽x高 的图片 一般情况下 相机不支持我想要的尺寸 宽x高 因此我需要裁剪拍摄的图片以符合我的规格 这个看似简单的程序让我对预览和图片尺寸和格式之间 良好 对应的问题感到疯狂 让我解释 我需
  • android.database.sqlite.SQLiteException:无法将 Android 短信数据库的数据库从版本 58 降级到 55

    当我的 Android 应用程序尝试读取 Android 短信数据库时 我遇到此崩溃 读取android短信数据库的代码类似于以下代码片段 String SMS URI content sms Uri uri Uri parse SMS U
  • 如何在 Windows 上用 C/C++ 为文件预分配空间?

    我正在向使用纯 C 函数的现有代码库添加一些功能 fopen fwrite fclose 将数据写入文件 不幸的是 我无法更改文件 i o 的实际机制 但我必须为文件预先分配空间以避免碎片 这会影响读取期间的性能 有没有比实际将零或随机数据
  • WebRTC 视频不显示

    我正在创建一对一的 webrtc 视频聊天室 但此代码不起作用 我想知道为什么 function hasUserMedia navigator getUserMedia navigator getUserMedia navigator we
  • 从 Android 设备发送 HTTPS/HTTP POST 时出现 UnknownHostException

    我正在尝试创建一个到 Google 服务器的 HTTP POST 来获取 ClientLogin Auth 如所述here http code google com android c2dm index html push 这篇文章的源代码
  • 视图中的 ASP.NET Web Api [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想在这种情况下通过 webapi 创建一个登录页面 我不想使用令牌 但视图应该是安全的 不是直接在 URL 中调用 如果用户是管理员
  • CSS 替代行 - 隐藏一些行

    我正在尝试设计表格 使每一行都有不同的颜色 奇数 偶数 我有以下 CSS woo tr nth child even td background color f0f9ff woo tr nth child odd td background
  • 两阶段查找 - 需要解释

    编译器使用两阶段查找来编译模板类是什么意思 模板被编译 至少 两次 如果没有实例化 则会检查模板代码本身的语法 例如 任何语法错误 例如 etc 在实例化时 当确切类型已知时 将再次检查模板代码以确保所有调用对于该特定类型都有效 例如 模板
  • httr 有时会将 URL 中的“%”替换为“%25”

    使用时httr GET 在某些查询中它会替换 具有安全代表 25 但在其他查询中则不然 我找不到任何规则可以实现这种情况 我正在使用 httr 1 4 1 示例查询在哪里 被替换 请注意错误代码 并且输入的 URL 与返回的响应对象中的 U