konto usunięte

Temat: Przechwytywanie sesji HTTP. Kłopot.

Próbuję napisać kod wyświetlający źródło HTML aplikacji Facebookowej. Odwołuję się bezpośrednio do aplikacji zapisanej na serwerze (nie na serwerze facebooka).

Wiadomo, aby poprawnie pracować musi zostać autoryzowana przez użytkownika (w tym przypadku przeze mnie) na Facebooku (przydzielając mi tzw. access_token), dzięki któremu mogę otwierać ją nie poprzez FB, i też widzieć moje prywatne dane.

Informacje odnośnie sesji przechowywane są w Cookies.

Napisałem kod, który tworzy zapytanie HTTP imitujący przeglądarkę, ale wciąż jako źródło dostaję link prowadzący do autoryzacji...

Kod aplikacji:
import java.net.*;
import java.io.*;

public class scanPage {
public static void main(String[] args) {
String address = "...url...";
String myCookies = "fbs_162138340519995=%22uid%3D100000027824838%26access_token%3D162158340519995%257C2.AQD5y_-5op_K_y_G.3600.1310389200.1-100000027824838%257C5IM1YK8-m1Wvd0K6bV8dZgT_qZ0%26expires%3D1310389200%26sig%3Daafcb501b9e408e011a44f675c09d3a9%22";
String inputLine;
try {
URL request = new URL(address);
HttpURLConnection urlConn = (HttpURLConnection) request.openConnection();
urlConn.setRequestMethod("GET");
urlConn.setRequestProperty("Host","apps2.socializer.pl");
urlConn.setRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0");
urlConn.setRequestProperty("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
urlConn.setRequestProperty("Accept-Language","pl,en-us;q=0.7,en;q=0.3");
urlConn.setRequestProperty("Accept-Encoding","gzip, deflate");
urlConn.setRequestProperty("Accept-Charset","ISO-8859-2,utf-8;q=0.7,*;q=0.7");
urlConn.setRequestProperty("Connection","keep-alive");
urlConn.setRequestProperty("Cookie",myCookies);
urlConn.connect();
BufferedReader in = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
while ((inputLine = in.readLine()) != null) System.out.println(inputLine);
in.close();
}
catch (MalformedURLException ex) {
ex.printStackTrace();
}
catch (IOException ex) {
ex.printStackTrace();
}
}
}


Cookies:
-fbs_162138340519995 (on zawiera access_token)
-CAKEPHP (te dwa zauważyłem że są automatycznie przydzielane przez serwer)
-trcke

Co chcę otrzymać:
kompletne źródło wygenerowanej strony


Co otrzymuję?
<!doctype html>
<html>
<head>
</head>
<body>
<script type="text/javascript">
top.location.href="https://graph.facebook.com/oauth/authorize?client_id=162138340519995&scope=publish_stream,email&redirect_uri=http://apps.facebook.com/<nazwa aplikacji>/&cancel_url=http://facebook.com/";
</script>
</body>
</html>

Jak poprawnie przechwycić tą sesję?Norbert Kozłowski edytował(a) ten post dnia 11.07.11 o godzinie 13:27

Temat: Przechwytywanie sesji HTTP. Kłopot.

Witaj,
Miałem podobny problem tyle tylko że w php.


 
$header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";
$header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
$header[] = "Cache-Control: max-age=0";
$header[] = "Connection: keep-alive";
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header[] = "Accept-Language: en-us,en;q=0.5";
$header[] = "Pragma: "; // browsers keep this blank.


po ustawieniu powyższego nagłówku problem zniknął.

PozdrawiamPaweł Srebniak edytował(a) ten post dnia 31.07.11 o godzinie 03:03

Następna dyskusja:

wychwycenie wygasłej sesji




Wyślij zaproszenie do