[Delphi] Persistent http-connectie mbv Indy

Pagina: 1
Acties:

  • joepP
  • Registratie: Juni 1999
  • Niet online
Het gebeurt me ongeveer nooit, maar ik ben nu echt helemaal vastgelopen...

Ik kan mbv het TIdHttp component html pagina's opvragen:

code:
1
2
3
4
Http := TIdHttp.Create(self);
Http.Host := 'www.microsoft.com';
Http.Get('/');
Http.Disconnect;


Nou ondersteunt versie 1.1 van het http protocol zgn persistent connections. Het is de bedoeling dat je dan eenmaal een TCP connectie naar een server maakt, en over deze connectie meerdere bestanden haalt. Dit is goed voor de performance, vooral als je veel kleine bestandjes (plaatjes) nodig hebt van een server.

Het probleem: zo gauw ik van een server die dit ondersteunt een tweede bestand opvraag, krijg ik een 403 terug. Voorbeeldje:

code:
1
2
3
4
5
Http := TIdHttp.Create(self);
Http.Host := 'www.microsoft.com';
Http.Get('/');
Http.Get('/'); //hier gaat het fout -> 403!
Http.Disconnect;


Als ik de verbinding sluit dmv een disconnect voor de tweede request werkt het wel, maar dan wordt er natuurlijk geen gebruik gemaakt van de persistent connection. En dan is de performance weer om te janken...

Ik heb werkelijk geen idee wat ik fout doe, en nergens kan in fatsoenlijke voorbeelden/documentatie vinden die me op weg helpt.

Voor de volledigheid: Delphi 5 + Indy 8.

Als iemand me zou kunnen helpen, graag!

[ Voor 0% gewijzigd door joepP op 21-10-2002 12:58 . Reden: Versies toegevoegd ]


Verwijderd

Je moet bij de HTTP Get aanroep ook de HTTP versie aangaven, zie RFC.

Succes :)

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Ondersteund Indy 8 het wel? Misschien moet je eens Indy 9 proberen.

We adore chaos because we like to restore order - M.C. Escher


  • joepP
  • Registratie: Juni 1999
  • Niet online
Verwijderd schreef op 21 oktober 2002 @ 13:16:
Je moet bij de HTTP Get aanroep ook de HTTP versie aangaven, zie RFC.

Succes :)
Dat doen die Indy componenten voor je, dus daar hoef ik me geen zorgen over te maken. Er is ook een 'UseNagle' property waarmee je het aan/uit kan zetten...

  • joepP
  • Registratie: Juni 1999
  • Niet online
LordLarry schreef op 21 oktober 2002 @ 13:25:
Ondersteund Indy 8 het wel? Misschien moet je eens Indy 9 proberen.
Indy 8 ondersteunt de complete 2616 specificatie, dus inclusief persistent connections. Indy 9 is helaas geen optie...

  • joepP
  • Registratie: Juni 1999
  • Niet online
/me Neemt een aanloop...

SCHOP ;)
Pagina: 1