由于系统限制,我使用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
有关如何解决此问题的任何想法?
答案 0 :(得分:1)
不幸的是,当对较短的URL请求PUT和POST方法时,会发生错误,而对于GET方法,使用选项-L
可以使请求正常运行。因此,作为使用更短网址的PUT请求的解决方法,该怎么办?
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。-L
。但是我无法测试。对此我感到抱歉。如果这不是您想要的解决方法,但没有奏效,我深表歉意。