如何调试 curl 访问被拒绝?

如何调试 curl 访问被拒绝?

我正在使用 curl 从 Artifactory 搜索工件,如下所示:

curl -s -u user:passwd http://artifactory:8081/artifactory/api/search/gavc?a=8710&v=REL-0041-20181219.003944-userdebug&c=fastboot | /usr/bin/jq -r .results[].uri

但它显示访问被拒绝错误

[1] 25600
[2] 25601
[2]+  Done v=REL-0041-20181119.003944-userdebug
Access denied

拒绝访问

我不知道如何调试这个问题,请给我一些建议。

curl 版本:7.47.0

答案1

这是几个不同的问题。

  1. 您的 uri 未转义,因此 [1][2][2]+ 消息意味着&被视为后台执行,您需要使用以下代码引用 uri""

  2. 您使用-s表示静默的选项,因此错误消息被抑制。请删除 -s 并查看 curl 遇到了什么错误,解决它们,然后再添加回 jq 命令。

  3. 如果您的问题本质上是关于artifactory的使用,那么您可以将artifactory添加到您的标题中。

答案2

有类似的问题。

使用 -v 参数,我发现即使不应该使用 localhost,也使用了代理。

对我来说,一个解决方法是取消设置 http 环境变量:

对于您的环境请参见:set|grep -i http

取消设置...

下一步是排除本地主机 127.0.0.1

no_proxy=localhost,127.0.0.1 导出no_proxy

它可以在 /etc/environment 或 /etc/bash.bashrc 中设置

也检查一下这个。如果你在这里更改了内容,请不要忘记注销/登录。

相关内容