我有以下 curl 命令
curl -X POST -w "\nRESULT CODE:%{http_code}\n" --insecure --header "Content-Type:application/json" --user robot-midc:1ZSXM7 -d @table.json http://databus.nrel.gov/api/registerV1
我收到以下回复
<html>
<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Found</h1></center>
<hr><center>nginx/1.2.4</center>
</body>
</html>
嗯,我如何检查实际的 http 代码,它是 302 吗,因为 curl 文档声称它们遵循重定向,所以我不确定发生了什么?
谢谢,Dean
嗯,也许这是一个错误,因为 curl 不像浏览器那样遵循 http 到 https 的重定向????我的问题很简单,负载均衡器总是重定向到 https 并且我在那里有 http....很奇怪,如果 curl 能给出一个更好的错误提示就好了,因为它不会重定向到 https(即,不像文档所述那样遵循所有重定向)。
答案1
传递-L
给cURL
并且它将遵循 302。
答案2
添加-v
到 curl 以查看实际的标头响应。
默认情况下,它不遵循重定向,添加-L
以也遵循重定向,但(来自手册页):
When authentication is used, curl only sends its credentials to the
initial host. If a redirect takes curl to a different host, it
won't be able to intercept the user+password. See also --location-trusted
on how to change this.