重定向后的 cURL PUT
cURL PUT following a redirect
我有一个 url,由于系统限制,使用 google firebase 缩短了它。我需要能够对它执行 curl PUT 和 GET 命令。 url 缩短器最终会进行重定向,我认为这是我的问题发生的地方。我使用 -L 标志让 GET 开始工作。
curl -X GET -L "http://myshorturl.com/hostedfile" --output GET.csv
但是我仍然无法让 PUT 工作
curl -X PUT -L "http://myshorturl.com/hostedfile" --upload-file PUT.csv
给我一个错误
Error 405 (Not Found)
这似乎意味着 PUT 是不允许的,但我知道我的端点确实允许,因为当我做同样的事情而不缩短 url 一切正常。
curl -X PUT -L "http://mymuchlongerurl.com/hostedfile" --upload-file PUT.csv
关于如何解决这个问题的任何想法?
不幸的是,当向缩短器 URL 请求 PUT 和 POST 方法时,会发生错误,而对于 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.
- 在您的情况下,可能不需要
-L
修改后的 curl 命令。但我无法测试它。对此我感到很抱歉。
参考:
如果这不是您想要的解决方法并且没有奏效,我深表歉意。
我有一个 url,由于系统限制,使用 google firebase 缩短了它。我需要能够对它执行 curl PUT 和 GET 命令。 url 缩短器最终会进行重定向,我认为这是我的问题发生的地方。我使用 -L 标志让 GET 开始工作。
curl -X GET -L "http://myshorturl.com/hostedfile" --output GET.csv
但是我仍然无法让 PUT 工作
curl -X PUT -L "http://myshorturl.com/hostedfile" --upload-file PUT.csv
给我一个错误
Error 405 (Not Found)
这似乎意味着 PUT 是不允许的,但我知道我的端点确实允许,因为当我做同样的事情而不缩短 url 一切正常。
curl -X PUT -L "http://mymuchlongerurl.com/hostedfile" --upload-file PUT.csv
关于如何解决这个问题的任何想法?
不幸的是,当向缩短器 URL 请求 PUT 和 POST 方法时,会发生错误,而对于 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.- 在您的情况下,可能不需要
-L
修改后的 curl 命令。但我无法测试它。对此我感到很抱歉。
参考:
如果这不是您想要的解决方法并且没有奏效,我深表歉意。