Ich möchte Zugriff auf eine JSON-Seite erhalten, die Daten enthält. Say, es ist da unter http://example.com/home/apples.json
Es ist geschützt, so dass eine Login-Seite angezeigt wird. Wenn ich es manuell besuchen wollte, gehe ich zuerst zu http://example.com/
Dort erhalte ich ein Login-Menü und nach dem Login als Benutzer "test" mit Passwort "test" besuchenden http://example.com/home/apples.json again
wird mir die JSON-Daten zeigen.curl - Wie bekomme ich einen Cookie nach dem Login, um einen curl-Befehl zu senden?
Wenn ich ein
curl -u test:test http://example.com/home/apples.json -v
ich auf der Login-Seite landen. (Trotz Authentifizierung.)
Wenn ich http://example.com/ besuche und mich manuell anmelde, erhalte ich nach der Anmeldung einen Cookie. Sagen wir, dieser Cookie heißt ltoken und erhält den Wert "dj8f". Es wird nur nach einer erfolgreichen Anmeldung angezeigt. Wenn ich es über den Browser nachschlagen und kopieren Sie die Cookie-Daten und hängen Sie es an die curl Befehl:
curl -b "ltoken="dj8f" http://example.com/home/apples.json -v
wird es funktionieren.
Wie kann ich die Cookie-Daten nach der Anmeldung abrufen, ohne sie manuell zu tun? Ist es über Bash Shell Scripting möglich? Wenn ja wie? Oder wie wäre es in einem groovigen Skript gemacht?
Ich habe es versucht, aber der Cookie in der Datei geschrieben enthält nicht die relevanten Cookie nach der Anmeldung, sondern nur diejenigen vor dem Login. Daher bezieht sich der Befehl currence nur auf die Anmeldeseite. Ich habe das in der Beschreibung besser formuliert. – kumoyadori
Nun, ok, ich habe angenommen, dass das Login funktioniert ... Wenn das nicht der Fall ist, müssen Sie * das Anmeldeformular ausfüllen *. AFAIK Die Option '-u' wird verwendet, um Anmeldeinformationen über HTTP-Felder zu senden.Dies wird heutzutage selten verwendet. Normalerweise müssen Sie sich die '' der Anmeldeseite ansehen und herausfinden: die Namen der Name/Passwort Felder und das Ziel des Sendens. Sie können dann die Formulardaten mit '--form' oder' --data' senden. – sauerburger
Ich habe skizziert, wie das gemacht werden könnte. – sauerburger