Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

[Delphi]Website status code [opgelost]

Hallo, Ik probeer de status code van een website op te vragen maar dit gaat half goed. ik gebruik deze code: [code:1:15640eaace]unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, IdException; type TForm1 = class(TForm) IdHTTP1: TIdHTTP; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin try idhttp1.head('http://www.eenwebsitedienieteentimeoutgeeft.nl'); except on eidhttpprotocolexception do begin showmessage(inttostr(idhttp1.ResponseCode)); end; on eidreadtimeout do begin showmessage(inttostr(idhttp1.ResponseCode)); end; end; end; end. [/code:1:15640eaace] Nu is het probleem als de website een timeout heeft krijg ik een fout melding:[code:1:15640eaace]Socket Error # 10060 Connection timed out.[/code:1:15640eaace] Ok leuk dat i ziet dat i een time out heeft maar ik wil alleen de responce code hebben. En door dat het programma die melding als een fout ziet krijg ik geen code... weet iemand hoe ik die foutmelding weg kan krijgen? Oplossing: [code:1:15640eaace]procedure TForm1.Button1Click(Sender: TObject); var S: string; begin try S := IdHTTP1.Get(Edit1.Text); Memo1.Text := inttostr(IdHTTP1.ResponseCode) ; IdHTTP1.Request.LastModified := IdHTTP1.Response.LastModified; except on E: EIdHTTPProtocolException do Memo1.Text := inttostr(IdHTTP1.ResponseCode) ; on E: Exception do begin Memo1.Text := inttostr(IdHTTP1.ResponseCode) ; end; end; end;[/code:1:15640eaace] Als nu de ResponseCode -1 is heeft er een TimeOut plaats gevonden. Delphi geeft dan nog wel een fout melding maar als het programma op zich zelf draait komt er geen fout melding.

Anoniem
Jago