标题几乎说明了一切。我正在使用选项-L
强制cURL遵循重定向,但服务器正在将POST转换为GET。 --post302
修复了它,但我无法访问我需要的版本7.19+。我可以用另一组选项复制该行为吗?
答案 0 :(得分:2)
简短回答:不,但请继续阅读。
更长的答案:问题是-L选项使curl自动遵循3xx响应的HTTP重定向。当服务器返回302时,过去通过curl以某种方式处理它(它改变并对下一个URL进行GET),就像大多数浏览器所做的那样。
然后--post302的原因是引入符合规范的方式,在302之后不会改变请求方法,而是将POST发送到下一个URL。
你可以解决限制而不更新到更现代的curl版本的方式是不使用-L而是使用脚本并执行302和位置: - 自己进行,然后在下一个URL上进行第二次curl调用。