重定向后进行cURL PUT

时间:2019-03-15 14:44:33

标签: curl put

由于系统限制,我使用Google Firebase缩短了网址。我需要能够对它执行curl PUT和GET命令。网址缩短程序最终进行重定向,这是我认为发生问题的地方。我使用-L标志获取了GET的支持。

ssh servername /remote/script/file $USERNAME

但是我仍然无法让PUT正常工作

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

给我一​​个错误

  

错误405(未找到)

这似乎意味着不允许使用PUT,但是我知道我的端点允许这样做,因为当我做同样的事情而不缩短url时,一切正常。

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

有关如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:1)

不幸的是,当对较短的URL请求PUT和POST方法时,会发生错误,而对于GET方法,使用选项-L可以使请求正常运行。因此,作为使用更短网址的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"检索重定向信息。
      -中的
    • -D -表示结果显示为标准输出。
  • curl -D - "http://myshorturl.com/hostedfile" | awk '/Location/ {print $NF}'检索重定向的URL。
  • 对于您而言,可能不需要修改的curl命令的-L。但是我无法测试。对此我感到抱歉。

参考:

如果这不是您想要的解决方法,但没有奏效,我深表歉意。