Antworten:
Verwenden Sie das Standort-Header-Flag:
curl -L <URL>
man curl
: "Wenn die Authentifizierung verwendet wird, sendet curl seine Anmeldeinformationen nur an den ursprünglichen Host. <...> Siehe auch --location-trusted, wie dies geändert werden kann."
Ich hatte ein ähnliches Problem. Ich poste meine Lösung hier, weil ich glaube, dass sie einem der Kommentatoren helfen könnte.
Für mich war das Hindernis, dass für die Seite ein Login erforderlich war und ich dann eine neue URL über Javascript erhielt. Folgendes musste ich tun:
curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <URL>
Beachten Sie, dass j_username und j_password der Name der Felder für das Anmeldeformular meiner Website sind. Sie müssen die Quelle der Webseite öffnen, um zu sehen, wie der Name des Felds Benutzername und der Name des Passwortfelds in Ihrem Fall lauten. Danach gehe ich eine HTML-Datei mit Java-Skript, in die die neue URL eingebettet wurde. Nachdem Sie dies analysiert haben, senden Sie es einfach erneut mit der neuen URL:
curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <NEWURL>
Wie gesagt, um Weiterleitungen zu folgen , können Sie das Flag verwenden -L
oder --location
:
curl -L http://www.example.com
Aber, wenn Sie die Anzahl der Umleitungen begrenzen möchten , fügen Sie den Parameter--max-redirs
--max-redirs <num>
Legen Sie die maximal zulässige Anzahl von Umleitungsfolgen fest. Wenn
-L
,--location
verwendet wird, kann diese Option verwendet werden, um zu verhindern, dass Curl Umleitungen "in absurdum" folgt. Standardmäßig ist das Limit auf 50 Umleitungen festgelegt. Setzen Sie diese Option auf -1, um sie unbegrenzt zu machen. Wenn diese Option mehrmals verwendet wird, wird die letzte verwendet.