【问题标题】:cURL PUT following a redirect重定向后的 cURL PUT
【发布时间】:2019-03-15 14:44:32
【问题描述】:

由于系统限制,我有一个使用 google firebase 缩短的 url。我需要能够对它执行 curl PUT 和 GET 命令。 url 缩短器最终会进行重定向,这是我认为我的问题发生的地方。我让 GET 使用 -L 标志工作。

curl -X GET -L "http://myshorturl.com/hostedfile" --output GET.csv

但是我仍然无法让 PUT 工作

curl -X PUT -L "http://myshorturl.com/hostedfile" --upload-file PUT.csv

给我一​​个错误

错误 405(未找到)

这似乎意味着不允许 PUT,但我知道我的端点确实允许,因为当我在不缩短 url 的情况下做同样的事情时一切正常。

curl -X PUT -L "http://mymuchlongerurl.com/hostedfile" --upload-file PUT.csv

关于如何解决这个问题的任何想法?

【问题讨论】:

    标签: curl put


    【解决方案1】:

    不幸的是,当 PUT 和 POST 方法被请求到缩短 URL 时,会发生错误,而对于 GET 方法,使用选项 -L 可以正常工作。那么作为使用缩短 URL 的 PUT 请求的解决方法,这个怎么样?

    修改 curl 命令:

    curl -X PUT -L `curl -D - "http://myshorturl.com/hostedfile" | awk '/Location/ {print $NF}'` --upload-file PUT.csv
    
    • curl -D - "http://myshorturl.com/hostedfile" 检索重定向的信息。
      • - of -D - 表示结果显示到标准输出。
    • curl -D - "http://myshorturl.com/hostedfile" | awk '/Location/ {print $NF}' 检索重定向的 URL。
    • 在您的情况下,可能不需要修改后的 curl 命令的-L。但我无法测试它。我很抱歉。

    参考:

    如果这不是您想要的解决方法并且不起作用,我深表歉意。

    【讨论】:

    • 感谢您的帮助!我对命令行和我可以使用的所有不同命令仍然很陌生。最终起作用的是 curl -X PUT --upload-file PUT.csv -D - "myshorturl/hostedfile" | awk '/Location/ {print $NF}'
    • @DTATSO 感谢您的回复。很高兴您的问题得到解决。
    猜你喜欢
    • 2019-06-21
    • 2016-01-17
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 2018-05-04
    • 2021-10-31
    • 2017-03-02
    • 1970-01-01
    相关资源
    最近更新 更多