Wysyłanie danych metodą GET

0

Mam program który co 20 sek wysyła pewne dane do skryptu php na serwerze, metodą GET, używałem komponentu indy ale po dłuższym czasie działania programu program przestał wysyłać dane, zmieniłem komponent na TWebBrowser ale ten komponent miesza coś i do serwera dochodzą raz dobre dane raz złe (niepotrzebne, tak jakby zapamiętywał co wysłał ostatnio)

Moglibyście poradzić jakiego komponentu użyć aby poprawnie wysyłać dane getem?
Nie chodzi mi o wyświetlanie strony tylko wysyłanie informacji...
Czy gdybym zmienił metodę na POST komponent indy nie przestawałby wysyłać danych? (wiąże to się z dość sporą zmianą skryptu php dlatego zanim to zrobię pytam Was)

Pozdrawiam

0

Jeżeli zawiodłeś się na Indy, a wiadomo używanie TWebBrowser do wysyłania danych bez potrzeby
ich wizualizacji to jak polowanie na muchy z armatą, to polecam oczywiście pakiet Synapse. Są do
niego dołączone dokumentacja oraz przykłady. Komponent niewizualny THttpSend posiada funkcję
HttpMethod i można zarówno wysylac dane POST'em (wtedy dane do wysłania mają znależć się w
zmiennej o nazwie Document [TMemoryStream]) lub jeżeli chcesz to pobrane GET'em, bo jeśli to
dobrze zrozumiałem chcesz przez swój program odwiedzać jakąś stronę (a wtedy pobrana strona,
rownież znajdzie się w zmiennej Document typu TMemoryStream). Po więcej odsyłam do google.

0

Dzięki za szybką odpowiedź :-)

Za pomocą mojego programu wysyłam dane do dopisania do bazy danych na serwerze więc zależy mi jedynie na wejście na strone xxx.php?dane=jakiesdane nie interesuje mnie co odpowie serwer, zresztą w skrypcie mam że jeśli $_GET['dane']!='' to nie printuje nic na stronie.

Zobaczę te synapse...
Ale nie wiem czy będzie śmigać na delphi 2007 zdaje mi się że kiedyś próbowałem odpalić na tym synapse... ale to było tak dawno że zapomniałem o istnieniu synapse... ;-)

0

Sądzę, że najnowsza wersja Synapse dostępna na stronie projektu, powinna działać pod
najnowszymi wersjami Delphi, chociaż ja ją używam pod Delphi 7 Personal i jak dotąd z
nią nie miałem żadnych problemów, a używałem ów komponentów w wielu programach.

0

Ja używam 2007 bo Delphi 7 nie chce mi się zainstalować, jakiś error z błędną ścieżką, nie pamiętam dokładnie...

Mógłbyś podać linka do synapse bo nie moge znaleźć w google, na 4programmers też nie widze [glowa]

0

nie mogę tego zainstalować, wywala błędy przy dołączaniu plików .pas
Mógłbyś wysłać plik bpl z synapse? Bo u siebie nie mogę tego pliku utworzyć...

0

delphi 7 nie mozesz zainstalowac biedaku? a jakim masz system? zgaduje win 7.

jak chcesz 'wejsc' na stronke jak to okresliles to zwykle idhttp.get wystarczy,

post wysylanie, get pobieranie tak trudno sie domyslic?

0

Win XP,
wiem do czego jest post i get, problem w tidhttp jest taki ze po dłuższym czasie przestaje wysyłać dlatego szukam innego rozwiązania.

0

a ja sądze ze wcale go nie zawiodło tylko po prostu nie umi z tego korzystać. Pokaż kawałek kodu to sprawdzimy co masz źle.

0

Trochę ten kod zmieniłem jak stosowałem TwebBrowser ale mniej wiecej wyglądał tak:

procedure TForm1.Timer1Timer(Sender: TObject);
var
i:integer;
wyslano:bool;
s:string;
b,ip:string;
q:string;
odp:string;
begin

memo1.clear;
odp:='';
b:='';
q:='';
s:='';
ip:='';
timer1.interval:= 20000;
try
begin
u.Send('/'+edit3.text);
u.receivestring;
u.Send('\players\');
s:=u.ReceiveString();
u.send('/sv finger');
ip:=u.receivestring();

end;
except
memo2.lines.add('Problem z UDP');
end;
 q:='http://www.serwer.pl/ranking.php?status='+koder.Encode(repleace(s))+'&ip=';
while ip<>'' do
begin



delete(ip,length(ip)-3,4);

delete(ip,1,24);




b:=b+ip+'Ů';
ip:='';
try
ip:=u.ReceiveString();
except memo2.lines.add('Problem z UDP');
end;
end;
if(b='')then timer1.OnTimer(self);

 q:=q+koder.encode(repleace(b));

   if(length(s)>69)then try


   
h.get(q);


   except
   memo2.lines.add('Błąd po GET ')
   end;



end;

pare zmiennych jest może niepotrzebnych ale były potrzebne przy twebbrowser.

u: tidudpclient;
h:tidhttpclient;

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