curl - 重定向后的 cURL PUT
问题描述
由于系统限制,我有一个使用 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
关于如何解决这个问题的任何想法?
解决方案
不幸的是,当 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。- 在您的情况下,
-L
可能不需要修改后的 curl 命令。但我无法测试它。对此我很抱歉。
参考:
如果这不是您想要的解决方法并且这不起作用,我很抱歉。
推荐阅读
- javascript - 通过 javascript 访问 svg 元素可以在线工作,但不能在本地文件中
- asp.net-core - ASP.NET Core 选项模式,名称由单个下划线分割
- php - 尽管代码的顺序如何,如何使一个 html 元素一个接一个地加载?
- python - 如何更快地遍历大量文件夹
- javascript - 函数 doGet 在离开批准脚本中不起作用
- r - 余弦函数没有给出正确的结果(它给出了正确的数字但符号相反)
- hotchocolate - HotChocolate 批处理错误:“当前架构不支持指定的指令 `export`。”
- python - 在数据帧python中查找时间戳之间的增量时出错
- c# - 如何在 Rust 中并行创建一个数组并将其返回给 C#?
- angular - 如何一起使用Required和Query参数 - 查询参数为空