Hallo Leute, ich habe ein kleines Problem. Ich sende an einen Socket einen Post-Request und erhalte auch die Antwort. Nun möchte ich danach gleich wieder einen Get-Request absenden, doch leider funktioniert das nicht richtig. So jetzt mal zum Background, warum ich das brauche:
Ich hab eine kleine Web-Applikation mit Frontend und Backend. Ins Backend kommt man nur, wenn man sich einloggt. Das Frontend und Backend sollen jeweils von einem Browser und einer Applikation angesprochen werden. Nun kann ich alle Infos vom Frontend wunderbar in der Applikation anzeigen lassen, aber in den Backendbereich komm ich nicht rein, ich bekomme immer nur eine 302 Response und mehr passiert nicht. Könnt ihr mir bitte helfen?
Hier mein Code:
So sieht die Antwort aus, die ich bekomme:
HTTP/1.1 302 FOUND
Date: Wed, 28 Jan 2009 23:52:22 GMT
Server: Apache/2.2.9 (Fedora)
Vary: Cookie
Location: http://localhost/overwiew
Set-Cookie: sessionid=6c5a0ddc2d1b0feb57ac9a46d8f98ad2; Domain=.localhost; expires=Thu, 29-Jan-2009 23:52:22 GMT; Max-Age=86400; Path=/
Content-Length: 0
Connection: close
Content-Type: text/html; charset=utf-8
Ich hab eine kleine Web-Applikation mit Frontend und Backend. Ins Backend kommt man nur, wenn man sich einloggt. Das Frontend und Backend sollen jeweils von einem Browser und einer Applikation angesprochen werden. Nun kann ich alle Infos vom Frontend wunderbar in der Applikation anzeigen lassen, aber in den Backendbereich komm ich nicht rein, ich bekomme immer nur eine 302 Response und mehr passiert nicht. Könnt ihr mir bitte helfen?
Hier mein Code:
Code:
try {
// Construct data
String data = postData;
// Create a socket to the host
String hostname = "localhost";
int port = 80;
InetAddress addr = InetAddress.getByName(hostname);
Socket socket = new Socket(addr, port);
// Send header
String path = "/login/check/";
BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(
socket.getOutputStream(), "UTF8"));
wr.write("POST " + path + " HTTP/1.1"
+ System.getProperty("line.separator"));
wr.write("Host: http://localhost"
+ System.getProperty("line.separator"));
wr
.write("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5"
+ System.getProperty("line.separator"));
wr
.write("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
+ System.getProperty("line.separator"));
wr.write("Accept-Language: en-us,en;q=0.5"
+ System.getProperty("line.separator"));
wr.write("Accept-Encoding: gzip,deflate"
+ System.getProperty("line.separator"));
wr.write("Accept-Charset: UTF-8,*"
+ System.getProperty("line.separator"));
wr.write("Keep-Alive: 300" + System.getProperty("line.separator"));
wr.write("Connection: keep-alive"
+ System.getProperty("line.separator"));
wr.write("Cookie: sessionid=6c5a0ddc2d1b0feb57ac9a46d8f98ad2"
+ System.getProperty("line.separator"));
wr.write("Content-Type: application/x-www-form-urlencoded"
+ System.getProperty("line.separator"));
wr.write("Content-Length: " + data.length()
+ System.getProperty("line.separator"));
wr.write(System.getProperty("line.separator"));
// Send data
wr.write(data);
wr.flush();
wr.write("GET /overview/ HTTP/1.1");
wr.write("Host: http://localhost"
+ System.getProperty("line.separator"));
wr
.write("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5"
+ System.getProperty("line.separator"));
wr
.write("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
+ System.getProperty("line.separator"));
wr.write("Accept-Language: en-us,en;q=0.5"
+ System.getProperty("line.separator"));
wr.write("Accept-Encoding: gzip,deflate"
+ System.getProperty("line.separator"));
wr.write("Accept-Charset: UTF-8,*"
+ System.getProperty("line.separator"));
wr.write("Keep-Alive: 300" + System.getProperty("line.separator"));
wr.write("Connection: keep-alive"
+ System.getProperty("line.separator"));
wr.write("Cookie: sessionid=6c5a0ddc2d1b0feb57ac9a46d8f98ad2"
+ System.getProperty("line.separator"));
wr.write(System.getProperty("line.separator"));
// Send data
wr.write(data);
wr.flush();
// Get response
BufferedReader rd = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
System.out.println(line);
}
wr.close();
rd.close();
} catch (Exception e) {
}
So sieht die Antwort aus, die ich bekomme:
HTTP/1.1 302 FOUND
Date: Wed, 28 Jan 2009 23:52:22 GMT
Server: Apache/2.2.9 (Fedora)
Vary: Cookie
Location: http://localhost/overwiew
Set-Cookie: sessionid=6c5a0ddc2d1b0feb57ac9a46d8f98ad2; Domain=.localhost; expires=Thu, 29-Jan-2009 23:52:22 GMT; Max-Age=86400; Path=/
Content-Length: 0
Connection: close
Content-Type: text/html; charset=utf-8