У меня есть следующая команда 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 утверждается, что они следуют перенаправлениям, поэтому я не уверен, что происходит?
спасибо, Дин
хммм, может это ошибка в том, что curl не следует перенаправлению с http на https, как это делают браузеры ???? Моя проблема заключалась просто в том, что балансировщик нагрузки всегда перенаправляет на https, и у меня там был http ... так странно, было бы неплохо, если бы curl выдавал лучшую ошибку, поскольку он не перенаправляет на https (т.е. не выполняет все перенаправления, как указано в документации).
Добавить -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.
Проходить -L
к cURL
и он будет следовать за 302.