【问题标题】:Why does this CURL (shell/terminal) command fail to execute?为什么此 CURL(shell/终端)命令无法执行?
【发布时间】:2020-06-08 08:00:54
【问题描述】:

好吧,我被这个难住了。当我执行这个 CURL 请求时,我得到了一个响应。响应是代理阻止它,但我确实得到了响应...

curl http://1.2.3.4:8080/v1/digital/foundations/content/articles?presetList=dashboard \
    -H 'content-type: application/json' \
    -H 'countryCode: US' \
    -H 'uuid: 3456789' \
    -H 'client_id: 1234'

但是,当我执行这个 CURL 请求时——唯一的改变是在开头添加 -x ""——CURL 请求没有执行。我一直按回车键,终端不断添加新行。我必须按CMD-C 才能摆脱它。

curl -x "" http://1.2.3.4:8080/v1/digital/foundations/content/articles?presetList=dashboard \
    -H 'content-type: application/json' \
    -H 'countryCode: US' \
    -H 'uuid: 3456789' \
    -H 'client_id: 1234'

这是结果。看看光标在哪里?它只是不断下降。

这个也试过了,但是一样...

curl --noproxy "*" \
    http://1.2.3.4:8080/v1/digital/foundations/content/articles?presetList=dashboard \
    -H 'content-type: application/json' \
    -H 'countryCode: US' \
    -H 'uuid: 3456789' \
    -H 'client_id: 1234'

那么为什么第一个执行,但第二个和第三个,我试图禁用代理,它只是坐在那里,我按回车?我也看到其他命令偶尔也会发生这种情况,但我不知道是什么原因造成的。真是令人沮丧。

【问题讨论】:

  • 能否在curl 中添加-v 选项并重试
  • 续行符是一个错字。 (我正在删除受保护的标头。)现在修复...
  • Aaaah...-v 帮助了。看起来它正在执行,但没有超时,实际上正在运行,因为它返回 * Trying 1.2.3.4... * TCP_NODELAY set 就是这样!介意把它放在答案中,以便我可以标记它吗?

标签: bash shell curl terminal command


【解决方案1】:

您应该在您的curl 命令中添加-v--verbose 选项,以获取打印在终端上的详细调试信息,以帮助您追踪问题的根源。

根据man curl

-v, --verbose

在操作过程中使 curl 变得冗长。有助于调试和查看“幕后”发生了什么。以'>' 开头的行 表示 curl 发送的“header data”,'<' 表示 curl 接收到的在正常情况下隐藏的“header data”,以 '*' 表示 curl 提供的附加信息。

【讨论】:

  • 就是这样。它正在执行。它只是由于某种原因无法到达机器,只是在等待。
猜你喜欢
  • 1970-01-01
  • 2017-06-28
  • 1970-01-01
  • 2015-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-19
相关资源
最近更新 更多