使用curl收集数据时出现错误/非法的URL格式错误

问题描述 投票:0回答:1

我正在尝试使用利用 REST-API 的curl 命令通过http 请求从atlassian confluence wiki 页面收集数据。我尝试访问的网站由我公司的服务器维护。我当前使用的命令是:

curl -v -w -u admin:admin https://confluence.ai.com/rest/api/content/494966598 | python -mjson.tool

代替 admin:admin 我输入我的用户名,即我的电子邮件,然后输入冒号和密码,例如。 [email protected]:thisispassword@ai 我知道该链接是正确的,因为当我单击“https://confluence.ai.com/rest/api/content/494966598”时,它会直接将我带到以下页面:以 JSON 格式显示所有信息,但当我尝试在终端中输入该命令时,出现错误消息。

Closing Connection -1
curl: (3) URL using bad/illegal format or missing URL
......
....
.....
No JSON object could be decoded
json curl httprequest client-server rest
1个回答
0
投票

作者似乎在 atlassian 论坛上提出了同样的问题,并在那里得到了一些提示: https://community.atlassian.com/t5/Confluence-questions/curl-http-request-returning-bad-illegal-format-or-missing-URL/qaq-p/1655207

作为给定提示的摘要:建议在请求中明确指定预期的输出格式(即 -H "Content-Type: application/json" )。 还建议使用适当的身份验证机制。

除此之外,还可能存在以下根本原因:

  • 真实的 URL 包含空格符号,可以通过复制/粘贴到浏览器 url 字段来正确处理这些符号,但不允许作为 curl 的 url 的一部分(即,应根据用例将其替换为 %20 或 + )
  • URL 中存在一些特殊(非 ASCII)字符,这会导致与空格类似的行为

一般来说 - 它可能有用:

  • 将 URL 封装在双引号中(即“your_url”)
  • 尝试根据 html url 标准对使用的 URL 进行编码,并查看是否有某些符号被替换(即这些符号导致了问题)
© www.soinside.com 2019 - 2024. All rights reserved.