1

标题基本概括了所有内容。我正在使用选项-L强制 cURL 遵循重定向,但服务器正在将 POST 转换为 GET。--post302修复它,但我无法访问需要它的版本 7.19+。我可以使用另一组选项复制该行为吗?

4

1 回答 1

2

简短的回答:不,但请进一步阅读。

更长的答案:问题是 -L 选项使 curl 自动遵循 3xx 响应的 HTTP 重定向。当服务器返回 302 时,通常由 curl 以某种方式处理(它会更改并执行 GET 到下一个 URL),因为这是大多数浏览器所做的。

--post302 的原因是为了引入一种符合规范的方式,它不会在 302 之后更改请求方法,而是也会将 POST 发送到下一个 URL。

可以在不更新到更现代的 curl 版本的情况下解决限制的方法是不使用 -L 而是使用脚本并执行 302 和 Location:- 跟随自己,然后在下一个执行第二次 curl 调用网址。

于 2013-03-23T18:26:58.183 回答