Komunikace se serverem pomocí HTTP

7 příspěvků

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. Tak jsem tady s tím http ještě jednou. Trošilinku jsem stdoval a už alespoň tuším jak na to "pumpování dat do serveru" přes socket. Z manuálu a od Koska jsem získal tyto zdrojáky, schválně jestli ja to tak: $fp = fsockopen ("server", 80); // navaze spojeni se serverem if (!$fp): echo "chyba"; // chyba else: fputs ($fp, "http pozadavek"); // posle pozadavek, ale nevim kam (do indexu nebo "jen tak" serveru:-) while (!feof($fp)): // ted ctu odpoved dokud neni na konci souboru (ale opet jakeho?) echo fgets ($fp,128); endwhile; fclose ($fp); // konec endif; Je mi jasné, že tohle mi bylo načrtnuto minule, ale jaksi jsem z toho předtím nebyl moc moudrý. Teď mi zbývá aplikovat toto na mou sms bránu. - HTTP požadavky nastuduju od Koska (např. "GET /neco.html HTTP/1.1\r\nHost: www.baf.cz\r\n\r\n"), alespoň budu chytřejší. - Tu odpověď, co čtu, tak to je obyčejná stránka nebo něco speciálního? Zdravím, Pavel p.s.: Co znamená to $fp? file ... (file post - posílaný soubor) nebo něco jiného
  2. $fp je rukojet spojeni. To je proste soubor, ktery ve skutecnosti je spojenim mezi klientem (scriptem) a serverem. Hlavicka http pozadavku vypada takto: GET /cesta/soubor.html HTTP/1.1 Host: www.server.cz Kazdy na novem radku. Za GET je jmeno dokumentu, ktery chces ziskat, Host je adresa - cili: chces-li ziskat stranku z adresy http://www.server.cz/cesta/soubor.html, bude hlavicka presne odpovidat te co jsem nacrtnul. DULEZITE UPOZORNENI. Za poslednim radkem hlavicky MUSI byt jeden radek prazdny. Odpovedi, na prvnim miste bude ciselny kod, ktery rika, ze 200 - OK, jinak chyba. Pote muze nasledovat spoustu informaci (doporucuji si je nechat zobrazit), potom JEDNA PRAZDNA RADKA a za touto radkou nasleduje ihned HTML stranka (nebo obrazek, pokud si zadal o obrazek). Takova drovnost. SPOJENI oteviras na adresu www.server.cz a stejnou adresu davas do polozky HOST: Je to nutne. Tady je priklad slozitejsiho pozadavku (tohle posles do soketu): GET /follow/rabbit.php?he=is&the=one HTTP/1.1 Host: www.matrix.org User-Agent: Mozilla/5.0 (compatible; Konqueror/2.2; FreeBSD) Accept: text/*, image/jpeg, image/png, image/*, */* Accept-Encoding: x-gzip, gzip, identity Accept-Charset: Any, utf-8, * Accept-Language: en, cs_CZ, cs_CZ.ISO_8859-2 Connection: Keep-Alive (^^^^ zde jedna prazdna radka) a tady je priklad odpovedi na ten pozadavek (to pak prectes ze souboru). HTTP/1.1 200 OK Date: Wed, 10 Apr 2002 17:10:20 GMT Server: Apache/1.3.19 (Unix) PHP/4.0.4pl1 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html; charset=iso-8859-1 <head> ... .. EOF (konec souboru);
  3. Jo díky, takže je to skoro tak, jak jsem myslel. Tu strukturu HTTP požadavku a odpovědi už znám ("Host: server" je kvůli virtuálním serverům a o prázdné řádce taky vím :-) - takže můj dotaz: jestli odpověď je soubor - je a hlavičky s http výsledkem jsou v něm umístěny na začátku. Z tohoto souboru si teda můžu vybrat, co potřebuji. - ohledně zaslání toho požadavku: nechat si pomocí GET poslat stránku... je jednoduché, ale jak na server "napumpovat data"? Poslat mu je nějak přes POST? (asi jo, že) Data se pošlou za prázdnou rádkou, jak jsem se dočetl. Takže na SMS bránu takto: - pošlu požadavek metodou POST s daty z vyplněného formuláře na operátorův skript - přijmu jeho odpověď a vyčtu si z ní, jak to dopadlo ANO? Díky, Pavel
  4. Takhle vypada komunikace s branou oskara: Pozadavek: GET http://sms.oskarmobil.cz/s_main.php3?locale=cz HTTP/1.0 Accept: text/*, text/html, */* User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; MSN 2.5; Windows NT) Host: sms.oskarmobil.cz Pragma: no-cache Odpoved: HTTP/1.0 200 OK Date: Sun, 01 Sep 2002 17:16:30 GMT Server: Apache/1.3.26 (Unix) PHP/4.2.2 X-Powered-By: PHP/4.2.2 Content-Type: text/html X-Cache: MISS from mistralproxy2.dkm.cz Proxy-Connection: close //musis najit tento radek... <input type="hidden" name="ppp" value="103090059098205:61436b656084f7955510ec5928990b49"> a obsat si tu hodnotu. Pak nasleduje dalsi pozadavek: POST http://sms.oskarmobil.cz/send.php3?locale=cz HTTP/1.0 Referer: http://sms.oskarmobil.cz/s_main.php3 Accept: text/*, text/html, */* Content-Type: application/x-www-form-urlencoded User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; MSN 2.5; Windows NT) Host: sms.oskarmobil.cz Content-Length: 217 Pragma: no-cache predcisli=0608&number=123456&ppp=103090059098205%3A61436b656084f7955510ec5928990b49&locale=cz&mypred1=%2B42&mypred2=0608&mynumber=123456&sender=&message=Test+zpravy&char_in=11&char_le=749&parts=1&sb=Odeslat+zpr%E1vu Odpoved serveru ale prekvapiva: HTTP/1.0 302 Moved Temporarily Date: Sun, 01 Sep 2002 17:16:33 GMT Server: Apache/1.3.26 (Unix) PHP/4.2.2 X-Powered-By: PHP/4.2.2 Location: error_successfull_cz.htm Content-Type: text/html X-Cache: MISS from mistralproxy2.dkm.cz Proxy-Connection: close Musis poslat dalsi pozadavek na adresu z pole "Location:" GET http://sms.oskarmobil.cz/error_successfull_cz.htm HTTP/1.0 Referer: http://sms.oskarmobil.cz/s_main.php3 Accept: text/*, text/html, */* User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; MSN 2.5; Windows NT) Host: sms.oskarmobil.cz Pragma: no-cache A vysledkem je uz stranka potvrzujici odeslani SMS. (vytazeno progamem TCP Snoop)
  5. wow:o). To není špatný špatný, asi si ten program taky downu
  6. Ondrej to vysvetlil podrobne a pekne - to uz musi byt snad kazdemu jasne... na teto urovni pracujes vlastne uplne stejne, jako prohlizec. vyplati se kouknout do popisu normy alespon na vsechny mozne hlavicky, at vis co muze pri spojeni nastat. kosek urcite nestaci! - to je jen takova berlicka, ukazka pro pochopeni (podrobneji to tam rozebrane neni). mozna jen jeste upresnim (abych neztratil dobrou povest slovickareni:-) > jestli odpověď je soubor - je... ...spis bych rekl, ze je to proud dat. pracuje se s tim podobne, ale je to trochu neco jine. m.s.
  7. Lukasik: To si asi nestahnes, protoze jsem ho psal ja, a funguje na baterky. Je to vlastne proxy, ktera to co prijme ukazuje na obrazovce a odesila to dal.

← Zpět na všechna témata