Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: System.Net.HttpWebRequest/System.Net.HttpWebResponse
Forum PHP.pl > Forum > PHP
marekk
WItam,

mam następujący problem: potrzebuję połączyć się z pewną witryną, przeprowadzić tam autoryzację, po czym ściągnąć pliki xml generowane na bieżąco. Niestety zwykłe funkcje ściągające file_get_contents itp. nie działają gdyż pliki nie są tryzmane besposrednio na serwerze, do tego dochodzi jak wspomniałem autoryzacja. Czytałem trochę i zdajsie można to rozwiązać z wykorzystaniem klas System.Net.HttpWebRequest/System.Net.HttpWebResponse czyli metodą ściągania danych do łańcucha tekstowego. Niestety nie znalazłem nigdzie w miarę jasno opisanej metody z użyciem tych klas i jeszcze pod platforme www.

Jezeli ktoś robił już coś podobnego prosiłbym o pomoc, ewentualnie jakieś inne pomysły rozwiązania problemu.
NuLL
Takich klas w PHPie nie ma. Sa one dostepne dla platformy .NET - nie to forum winksmiley.jpg
marekk
Tzn. rozumiem nie jest realne zrobienie tego pod stronę WWW przy użyciu HttpWebResponse ?

Jeżeli nie, czego użyć aby przeprowadzić autoryzację i zassać takie dane?
drPayton
TU masz łopatologicznie wytłumaczoną komunikacje (na przykładzie Allegro) z użyciem tych klas.
W php do tego służy CURL

edit: Da się to zrobić korzystając z tych klas, ale w asp.net (C#) winksmiley.jpg
marekk
M.in. ten artykuł wcześniej cyztałem i myślałem ze da sie jakoś to rozwiązać i tym sposobem rolleyes.gif

Ale generalnie chcę zeby to działało a musi być w php, poczytam o curlu w takim razie smile.gif

Próbowałem tego curla i jedno co mi sięudaje to autryzować:

$c = curl_init();
curl_setopt($c, CURLOPT_URL, 'http://mojastrona.pl/autorize.php);
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_POSTFIELDS, 'login=aaa&password=bbb');
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
echo curl_exec($c);

zwraca 1-ke czyli poszło. Ale teraz po autoryzacji potrzebuję z zachowaniem autoryzowanej sesji pobrać dane:

$file = fopen("plik_do_zapisu.txt", "w+");

curl_setopt($c, CURLOPT_URL, "http://mojastrona.pl/dane.xml");
curl_setopt($c, CURLOPT_FILE, $file);
echo curl_exec($c);

curl_close($c);

Niestety otrzymuję pusty plik sad.gif
Może by ktoś pomógł? snitch.gif Nie wiem czy ta sesja jest gubiona (tworzona od nowa) czy pamietana, czy też może trzeba jeszcze jakieś instrukcje po drodze wykonać?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.