http://www.trafik.gov.tr/IAS/IAS/wfAracBilgSorgulama.aspx
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Olmuyor
var
URL: WideString;
begin
// memo1 değerini navigate edildiğinde alıyorum
URL := 'http://www.trafik.gov.tr/IAS/IAS/wfArac ... ulama.aspx?'+
'__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE='+Memo1.Text+
'&txtPlaka='+Edit1.Text;//+'&imgSorgula.x=75&imgSorgula.y=12';
PlakaWB.Navigate(URL)
kod daha önce çalışıyordu.. şimdi
Server Error hatası veriyor
URL: WideString;
begin
// memo1 değerini navigate edildiğinde alıyorum
URL := 'http://www.trafik.gov.tr/IAS/IAS/wfArac ... ulama.aspx?'+
'__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE='+Memo1.Text+
'&txtPlaka='+Edit1.Text;//+'&imgSorgula.x=75&imgSorgula.y=12';
PlakaWB.Navigate(URL)
kod daha önce çalışıyordu.. şimdi
Server Error hatası veriyor
hocam bir türlü beceremdim...
strData := '__EVENTTARGET='+ '&'+'__EVENTARGUMENT='+ '&'+'__VIEWSTATE='+Form1.Memo2.Text+ '&'
+ 'txtPlaka=' + HTTPEncode(Plaka);
PostData := VarArrayCreate([0, Length(strData) - 1], varByte);
for i := 1 to Length(strData) do PostData[i-1] := Ord(strData);
Headers := 'Content-Type: application/x-www-form-urlencoded' + #10#13;
WebBrowser.Navigate('http://www.trafik.gov.tr/IAS/IAS/wfArac ... ulama.aspx?', EmptyParam, EmptyParam, PostData, Headers);
post cevabı ise Server Error Unablede validate data

+ 'txtPlaka=' + HTTPEncode(Plaka);
PostData := VarArrayCreate([0, Length(strData) - 1], varByte);
for i := 1 to Length(strData) do PostData[i-1] := Ord(strData);
Headers := 'Content-Type: application/x-www-form-urlencoded' + #10#13;
WebBrowser.Navigate('http://www.trafik.gov.tr/IAS/IAS/wfArac ... ulama.aspx?', EmptyParam, EmptyParam, PostData, Headers);
post cevabı ise Server Error Unablede validate data
Memo2 içeriğindeki veri http encoded veridir inşallah... Yoksa çalışmaz
benim için çalışan yeterlilikte sorgu parametresi aşağıdaki kadar olandır. Fazla parametre sorun çıkarmaz ancak kafa karışıklığı doğurabilir...
benim için çalışan yeterlilikte sorgu parametresi aşağıdaki kadar olandır. Fazla parametre sorun çıkarmaz ancak kafa karışıklığı doğurabilir...
Kod: Tümünü seç
EncodedDataString := '__VIEWSTATE=' + HTTPEncode(VS)
+ '&txtPlaka=' + HTTPEncode(Plaka)
+ '&imgSorgula.x=51'
+ '&imgSorgula.y=8';
- En sonunda ayıp ettin valla..
- Kodun öyle çok karmaşık olmasa gerek neden şimdi burada yazmıyorsun ? Kişiye özel bilgi vermiyoruz burada genele faydamız dokunsun diye vakit ayırıyor emek veriyoruz.
- Neyse ben yazıyorum. Senin için vakit kaybı ve / veya çok çok özel ise zahmet vermeyelim...
Kullanımı :
- Herkese kolaylıklar dileriz...

- Kodun öyle çok karmaşık olmasa gerek neden şimdi burada yazmıyorsun ? Kişiye özel bilgi vermiyoruz burada genele faydamız dokunsun diye vakit ayırıyor emek veriyoruz.
- Neyse ben yazıyorum. Senin için vakit kaybı ve / veya çok çok özel ise zahmet vermeyelim...
Kod: Tümünü seç
Function TrafikSorgula( WebBrowser:TWebBrowser; Plaka:String ):WideString;
Const
VS = 'dDwtMTQyNjU5Mjk4Mjt0PDtsPGk8MT47PjtsPHQ8O2w8aTw5PjtpPDExPjtpPDEzPjtpPDE1PjtpPDE3'
+'PjtpPDE5PjtpPDIxPjtpPDIzPjtpPDI1PjtpPDI3PjtpPDI5PjtpPDMxPjtpPDMzPjtpPDM1PjtpPDM3'
+'PjtpPDM5PjtpPDQxPjtpPDQzPjtpPDQ1PjtpPDQ3PjtpPDQ5PjtpPDUxPjtpPDUzPjtpPDU1Pjs+O2w8'
+'dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+'
+'Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxv'
+'PGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxl'
+'Oz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxW'
+'aXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxw'
+'PHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47'
+'Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+'
+'Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47'
+'bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNp'
+'YmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPGw8'
+'VmlzaWJsZTs+O2w8bzxmPjs+Pjs7Pjt0PHA8cDxsPFZpc2libGU7PjtsPG88Zj47Pj47Pjs7Pjt0PHA8'
+'bDxpbm5lcmh0bWw7VmlzaWJsZTs+O2w8XGU7bzxmPjs+Pjs7Pjt0PHA8cDxsPFZpc2libGU7PjtsPG88'
+'Zj47Pj47Pjs7Pjt0PHA8bDxpbm5lcmh0bWw7VmlzaWJsZTs+O2w8XGU7bzxmPjs+Pjs7Pjt0PHA8cDxs'
+'PFRleHQ7PjtsPCBTb3JndWxhbWFuxLF6YSBlc2FzIG9sYW4gdmVyaSBnw7xuY2VsbGVtZXNpIDE5LjA4'
+'LjIwMDcgdGFyaWhpbmRlIGdlcsOnZWtsZcWfbWnFn3Rpci5cPGJyXD47Pj47Pjs7Pjs+Pjs+PjtsPGlt'
+'Z1Nvcmd1bGE7Pj5BV3z/ARiRg3JB6QXNEBFXh7RJYA==';
var
EncodedDataString : string;
PostData : OleVariant;
Headers : OleVariant;
i : integer;
begin
EncodedDataString := '__VIEWSTATE=' + HTTPEncode(VS)
+ '&txtPlaka=' + HTTPEncode(Plaka)
+ '&imgSorgula.x=51'
+ '&imgSorgula.y=8';
PostData := VarArrayCreate([0, length(EncodedDataString)-1], varByte);
for i := 1 to length(EncodedDataString) do
PostData[i-1] := ord(EncodedDataString[i]);
Headers := 'Content-type: application/x-www-form-urlencoded'#10#13;
WebBrowser.Navigate('http://www.trafik.gov.tr/IAS/IAS/wfAracBilgSorgulama.aspx',
EmptyParam, EmptyParam, PostData, Headers);
Repeat Application.ProcessMessages;
Until WebBrowser.ReadyState = ReadyState_Complete;
Result := WebBrowser.OleObject.Document.Body.InnerHtml;
end;
Kod: Tümünü seç
Text := TrafikSorgula(WebBrowser1, Edit1.Text);
- Herkese kolaylıklar dileriz...

En son mrmarman tarafından 21 Ağu 2007 05:58 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
olurmu hocam..
paylaşılan bilgi kutsaldır.
benim yazdığım kod biraz uzun ve karmaşıktı.....
var
ViewState ,P1,P,EncodedDataString : String;
I : Integer;
procedure wb_PostDataSubmit(Webbrowser : TWebBrowser;Url,EncodedDataString: string);
Var
PostData: OleVariant;
Headers: OleVariant;
I: Integer;
PriorityClass, Priority: Integer;
begin
try
PriorityClass := GetPriorityClass(GetCurrentProcess);
Priority := GetThreadPriority(GetCurrentThread);
SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);
Sleep(10);
PostData := VarArrayCreate([0, Length(EncodedDataString) - 1], varByte);
for I := 1 to Length(EncodedDataString) do
PostData[I-1] := Ord(EncodedDataString);
Headers := 'Content-Type: application/x-www-form-urlencoded' + #10#13;
WebBrowser.Navigate(Url,EmptyParam,EmptyParam,PostData,Headers);
finally
SetThreadPriority(GetCurrentThread, Priority);
SetPriorityClass(GetCurrentProcess, PriorityClass);
end;
end;
procedure get_vs;
var
HTML : String;
poz:integer;
begin
html:=idhttp1.Get('http://www.trafik.gov.tr/IAS/IAS/wfArac ... ulama.aspx?');
poz:=pos('name="__VIEWSTATE" value="',html);
delete(html,1,poz+25);
ViewState := copy(html,1,pos('"',html)-1);
end;
begin
P := PlakaE.Text;
P1 := '';
for I := 1 to Length(P) do begin // Boşlukları kırp
if P<>' ' then P1 := P1+p;
end;
get_vs;
EncodedDataString := '__VIEWSTATE=' + HTTPEncode(ViewState)
+ '&txtPlaka=' + HTTPEncode(P1)
+ '&imgSorgula.x=51'
+ '&imgSorgula.y=8';
wb_PostDataSubmit(PlakaWB,'http://www.trafik.gov.tr/IAS/IAS/wfArac ... DataString);
paylaşılan bilgi kutsaldır.
benim yazdığım kod biraz uzun ve karmaşıktı.....
var
ViewState ,P1,P,EncodedDataString : String;
I : Integer;
procedure wb_PostDataSubmit(Webbrowser : TWebBrowser;Url,EncodedDataString: string);
Var
PostData: OleVariant;
Headers: OleVariant;
I: Integer;
PriorityClass, Priority: Integer;
begin
try
PriorityClass := GetPriorityClass(GetCurrentProcess);
Priority := GetThreadPriority(GetCurrentThread);
SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);
Sleep(10);
PostData := VarArrayCreate([0, Length(EncodedDataString) - 1], varByte);
for I := 1 to Length(EncodedDataString) do
PostData[I-1] := Ord(EncodedDataString);
Headers := 'Content-Type: application/x-www-form-urlencoded' + #10#13;
WebBrowser.Navigate(Url,EmptyParam,EmptyParam,PostData,Headers);
finally
SetThreadPriority(GetCurrentThread, Priority);
SetPriorityClass(GetCurrentProcess, PriorityClass);
end;
end;
procedure get_vs;
var
HTML : String;
poz:integer;
begin
html:=idhttp1.Get('http://www.trafik.gov.tr/IAS/IAS/wfArac ... ulama.aspx?');
poz:=pos('name="__VIEWSTATE" value="',html);
delete(html,1,poz+25);
ViewState := copy(html,1,pos('"',html)-1);
end;
begin
P := PlakaE.Text;
P1 := '';
for I := 1 to Length(P) do begin // Boşlukları kırp
if P<>' ' then P1 := P1+p;
end;
get_vs;
EncodedDataString := '__VIEWSTATE=' + HTTPEncode(ViewState)
+ '&txtPlaka=' + HTTPEncode(P1)
+ '&imgSorgula.x=51'
+ '&imgSorgula.y=8';
wb_PostDataSubmit(PlakaWB,'http://www.trafik.gov.tr/IAS/IAS/wfArac ... DataString);
- Viewstate ilk defasında sabittir. Daha sonra sorgudan sorguya güncellenir. Yani yapılan ardışık her sorguda güncellenir.
- İlk defasında ise hiç sorgu yapılmamış boş hali, işte bu Const olarak tanımladığım halidir.
- Dilersen program çalışınca günün ilk sorgusundan önce boş bir sorgu yaptırıp güncel Viewstate değerini HTML Parse ederek global bir değişkene ve/veya INI dosyaya atabilir oradan kullandıra dabilirsin. Tamamen sana kalmış bir olay...
- Bir de hatırlatma. Kodlarını mouse ile bloklayıp CODE tagına alırsan daha formatlı ve anlaşılır görünür.
- İlk defasında ise hiç sorgu yapılmamış boş hali, işte bu Const olarak tanımladığım halidir.
- Dilersen program çalışınca günün ilk sorgusundan önce boş bir sorgu yaptırıp güncel Viewstate değerini HTML Parse ederek global bir değişkene ve/veya INI dosyaya atabilir oradan kullandıra dabilirsin. Tamamen sana kalmış bir olay...
- Bir de hatırlatma. Kodlarını mouse ile bloklayıp CODE tagına alırsan daha formatlı ve anlaşılır görünür.
VIEWSTATE değişken olduğundan en güzeli VIEWSTATE bir ini de tutmak hata verdi ise yeni VIEWSTATE almak sorunu çözebilir
Kod: Tümünü seç
procedure get_vs;
var
HTML : String;
poz:integer;
begin
html:=idhttp1.Get('http://www.trafik.gov.tr/IAS/IAS/wfAracBilgSorgulama.aspx?');
poz:=pos('name="__VIEWSTATE" value="',html);
delete(html,1,poz+25);
Pro_ViewSate := copy(html,1,pos('"',html)-1);
MyIni := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Pro_ViewSate.ini');
MyIni.WriteString('D','Pro_ViewSate',Pro_ViewSate);
MyIni.Free;
end;
MyIni := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Pro_ViewSate.ini');
Pro_ViewSate := MyIni.ReadString('D','Pro_ViewSate','');
MyIni.Free;
if Pro_ViewSate= '' then Get_vs;
EncodedDataString := '__VIEWSTATE=' + HTTPEncode(Pro_ViewSate)
+ '&txtPlaka=' + HTTPEncode('07AB542')
+ '&imgSorgula.x=51'
+ '&imgSorgula.y=8';
wb_PostDataSubmit(PlakaWB,'http://www.trafik.gov.tr/IAS/IAS/wfAracBilgSorgulama.aspx?',EncodedDataString);
var
ViewState ,P1,P,EncodedDataString : String;
I : Integer;
begin
P := PlakaE.Text;
P1 := '';
for I := 1 to Length(P) do begin
if P[I]<>' ' then P1 := P1+p[I];
end;
EncodedDataString := '__VIEWSTATE=' + HTTPEncode(Pro_ViewSate)
+ '&txtPlaka=' + HTTPEncode(P1)
+ '&imgSorgula.x=51'
+ '&imgSorgula.y=8';
wb_PostDataSubmit(PlakaWB,'http://www.trafik.gov.tr/IAS/IAS/wfAracBilgSorgulama.aspx?',EncodedDataString);
Eyw hocam sağolasın sorunumu halletmıstım ama yazmayı unutmusum..
ViewState yi programın her acılısında aldırmıstım..
ViewState yi programın her acılısında aldırmıstım..
Kod: Tümünü seç
// Uses e FastStrings!!!
var
Aranacak: array[1..3] of integer;
ViewState:string;
begin
Memo1.Text:=IdHTTP1.Get('http://www.trafik.gov.tr/IAS/IAS/wfCezaPuanSorgulama.aspx');
Aranacak[1]:=FastPos(Memo1.Text,'__VIEWSTATE"',length(Memo1.Text),12,1);
if Aranacak[1]>0 then
begin
Aranacak[2]:=FastPos(Memo1.Text,'"',length(Memo1.Text),1,Aranacak[1]+12);
if Aranacak[2]>0 then
begin
Aranacak[3]:=FastPos(Memo1.Text,'"',length(Memo1.Text),1,Aranacak[2]+1);
if Aranacak[3]>0 then
begin
ViewState:=copy(Memo1.Text,Aranacak[2]+1,Aranacak[3]-(Aranacak[2]+1));
end;
end;
end;
end;
Bilmemek ayıp değil öğrenmek isteyene öğretmemek ayıp:)