[Delphi] HTTP Client/Server

pascasso

Power Member
boas,

tenho aqui um problema bicudo...

Estou a usar o Delphi 2007 e estou a tentar conectar com o socket Indy Http client a um ficheiro que tenho no meu pc. Mas acontece que ao fazer isto:

Código:
html := http.get('http://www.google.pt');

o código da página do google vai para a variável html. Mas se eu fizer isto:

Código:
html := http.get('D:\ola.html');

diz-me que a página não foi encontrada. Até certo ponto percebo mas à alguma maneira de fazer com que ele aceda localmente e execute uma página através deste socket?

Pensei entretanto em usar o Indy Http Server para criar um servidor http temporário apara assim poder aceder através do protocolo http à página que quero executar através do HTTPClient acima descrito. Até aí tudo bem o problema é que não encontro qualquer parâmetro nem propriedade no httpserver para definir o default path (o sítio onde ele vai buscar os ficheiros para o site, tipo httpdocs no apache e não só). Alguém sabe como se faz?

As minhas dúvidas relacionam-se apenas a estes sockets e são muito específicas por isso mesmo não encontro nada nem em googles nem searches. Espero que me consigam ajudar.
 
Viva

Estava à procura de outra coisa no fórum e li o post na diagonal :zzz:
mas se a ideia é só aceder a páginas locais não bastaria isto:

Código:
html := http.get('file://D:\ola.html');
 
tu sabes como é que funciona minimamente o protocolo http?

para acederes a um ficheiro no teu computador, tens que ter um servidor de http a correr...

... se estar a programar um servidor o teu servidor na request line vai ser do tipo: nome do metodo (get/put/post/options/delete/...) : URI (nome do ficheiro com diretorio) : versão do protocolo http.

Não sei se com o delphi tens umas funções para te caçar esses parâmetros automaticamente, o que te interessa neste caso é se o método for GET e o URI a versão do protocolo http não deve fazer diferença (para o que tu queres).

O URI é composto pelo nome relativo da directoria e do ficheiro, pelo que ao URI tens que juntar o a directoria de trabalho para ficares com o "caminho completo" para o ficheiro.

no lado do cliente no nome do host (www.google.com) deves usar o endereço IP da tua propria maquina ou então o endereço IP de loopback e o numero de porto que definiste em que o servidor http iria funcionar (se o delphi não deixar configurar experimenta o porto 80 que é o numero de porto TCP registado na IANA para o protocolo http)


--------------------------------------------------------

Se tiveres de fazer tratamento manual das mensagens lembra-te que uma mensagem http tem o seguinte formato:

request/response line
headers
cr+lf
body (opcional)
cr+lf+cr+lf

Já agora por curiosidade porque é que usas o delphi?
 
Última edição pelo moderador:
tu sabes como é que funciona minimamente o protocolo http?

Lê o meu post outra vez antes de começares com acusações.
Afinal estamos aqui nos ajudar uns aos outro não é?
E sim, sei como funciona o protocolo HTTP.

Já agora só por curiosidade porque é que não usas delphi?
 
Última edição:
Back
Topo