Java Http-POST mit Basis-Autorisierung und-Umleitung
Das Programm macht eine http-post mit basic authorization Prima, aber wenn der post abgeschlossen ist, wird die Seite umgeleitet auf eine Seite Erfolg. Die Umleitung fehlschlägt, aufgrund 401 Autorisierung fehlgeschlagen.
final URLConnection conn = url.openConnection();
conn.setDoOutput(true);
conn.setRequestProperty("Authorization", "basic " +base64);
wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();
rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
Die Linie
rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
scheitert 401 Autorisierung fehlgeschlagen...
Habe ich auch versucht, indem
conn.setRequestProperty("Authorization", "basic " +base64);
nach
wr.flush();
Bekomme ich den Fehler "Bereits verbunden". Offenbar die Genehmigung, dass ich nicht Folgen, über die Weiterleitung. Lösungen für dieses problem wird sehr geschätzt.
- Wo ist Ihr Aufruf
conn.connect()
nach der Einrichtung der Kopfzeilen? - Keine Notwendigkeit, conn.getOutputStream() verbindet sich automatisch, wenn keine Verbindung ist bereits hergestellt.
- Wusste gar nicht, dass. Gehen Sie zurück und überprüfen Sie die doc für
URLConnection
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie 2 Optionen, die Sie ausprobieren können:
setDefaultRequestProperty
(siehe http://download.oracle.com/javase/1.5.0/docs/api/java/net/URLConnection.html#setDefaultRequestProperty%28java.lang.String,%20java.lang.String%29) - Methode, um die Authorization-header.getHeaderField
zu prüfen, ob eineLocation
- header gesetzt ist: dies wird Ihnen sagen, wenn der login erfolgreich war.Ist hier die funktionierende Lösung für alle anderen, die dieses problem hat. Nochmals vielen Dank an Femi für die Bereitstellung eines workaround Idee.