1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[Delphi] HTTP Client/Server

Discussão em 'Programação' iniciada por pascasso, 18 de Maio de 2008. (Respostas: 3; Visualizações: 2360)

  1. pascasso

    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.
     
  2. 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');
     
  3. theforbidden1

    theforbidden1 Banido

    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: 1 de Agosto de 2008
  4. pascasso

    pascasso Power Member

    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: 5 de Agosto de 2008

Partilhar esta Página