[Delphi] Wysylanie zapytania do index.php przez Socket'a

0

Witam potrzebuje skomunikowac sie z serwerem za pomoca ClientSocket.

Mam z tym dwa problemy:

  1. Nie wiem jak wyslac metoda POST zapytanie do serwera.

  2. Nie wiem jak zaadresowac wiadomosc, ktora powinna isc na www.serwer.pl/katalog/index.php?wersja=5

www.serwer.pl - to sie zamieni na IP, ale co zrobic z reszta - /katalog/index.php?wersja=5 ?

Musze to zrobic poprzez ClientSocket, gdyz uzywam TurboDelphi, w ktorym nie mam komponentow Indy.

Ewentualnie myslalem nad nastepujacym rozwiazanie, ktore niestety nie dzialalo:

if URLDownloadToFile(nil, 'http://www.serwer.pl/katalog/index.php?wersja=5',  'c:\plik.txt', 0, nil)  <> 0 then
    ShowMessage('Błąd podczas ściągania pliku');

Nie potrafil sciagnac takiego pliku, moze ktos ma pomysl na modyfikacje, to rozwiazaloby moj problem z Socket'ami.

Z gory dziekuje za pomoc.

0

A może lepiej skorzystać z WinInet zamiast robić to w oparciu o ClientSocket

0

Mówisz chyba raczej o zapytaniu GET...
Twoje zapytanie HTTP będzie miało mniej więcej postać:

GET /katalog/index.php?wersja=5 HTTP/1.1
Host: www.serwer.pl

(Linijki porozdzielane znakami nowego wiersza w formacje DOSowskim: para CR LF, na końcu musi być linijka pusta)
Tyle powinno wystarczyć, żeby serwer był w stanie odpowiedzieć.

Serwer odpowie Ci ciągiem nagłówków oddzielonym od właściwej treści pliku pustą linią.

0

Jesli chodzi o metode 1 to POST, natomiast alternatywa dla niej miala byc metoda 2.

Wielkie dzieki za Odpowiedz. Wysylanie metoda GET dziala. Masz moze jeszcze pomysl jak wysylac z delphi dane tak jakby byly wysylane z formularza ? metoda POST ?

Znalazlem cos takiego, ale niestety jestem zbyt slaby w programowaniu, zeby zrozumiec zrodlo, skomentowane w obcym jezyku, moze ktos z was zrozumie i mi pomoze ?

http://delphiworld.narod.ru/base/send_web_form.html

1 użytkowników online, w tym zalogowanych: 0, gości: 1