Classe Httpd

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

wmanesco
Usuário Nível 3
Usuário Nível 3
Mensagens: 116
Registrado em: 09 Set 2016 13:18
Localização: ITAJAI - SC

Classe Httpd

Mensagem por wmanesco »

Pessoal, desenvolvi uma aplicação de teste para usar essa classe httpd e queria testa-lá de uma forma mais real, quero dizer, subir o servidor na web para ver como ela se comporta.


Porém estou encontrando dificuldade por não enteder muito essa questão de servidor. Como faria pra subir essa aplicação, sendo que foi compilado em windows e utilizo banco de dados mysql?

Agradeço desde já. Obrigado
William Manesco
Harbour 3.x | Fivewin | BCC | MySQL (TDolphin) | HBQT | HBIDE | Atom
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Classe Httpd

Mensagem por Vlademiro »

Existe um servidor já funcionando na pasta extras do Harbour. Ela já vem com alguns exemplos. O ideal é começar por ele.
wmanesco
Usuário Nível 3
Usuário Nível 3
Mensagens: 116
Registrado em: 09 Set 2016 13:18
Localização: ITAJAI - SC

Classe Httpd

Mensagem por wmanesco »

Na realidade já desenvolvi uma aplicação em cima dos exemplos, e está funcionando em servidor local. Minha dúvida é como subir esse servidor e deixa-lo online, não sei se tinha me expressado direito
William Manesco
Harbour 3.x | Fivewin | BCC | MySQL (TDolphin) | HBQT | HBIDE | Atom
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Classe Httpd

Mensagem por rubens »

Bom dia...

Eu tô precisando fazer um esquema aqui de validação/bloqueio do sistema. Não vai ser para todos os clientes.
Pensei em gerar um arquivo, pode até ser txt mesmo. O cliente que estive marcado para validar o sistema baixaria esse arquivo.
Essa classe seria para fazer esse tipo de processo?
Eu consigo enviar um arquivo e baixar o retorno... Fiz isso com sms. Envio um arquivo para o site www.easysms.com.br e pego o retorno.
Daí para o que eu pretendo dá para usar essa classe?
No meu computador ficaria sendo executado um servidor com esta classe ?

Obrigado
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Classe Httpd

Mensagem por Vlademiro »

Sabe o que eu acho ? Acho que essa classe depende de mais um pouco de documentação e de exemplos. No caso do arquivo de retorno, se eu entendi direito, a aplicação envia (via webbrowser) um arquivo para ser processado no servidor (via uhttpd) e o servidor retorna o respectivo arquivo de retorno. Se for isso, vc tem que fazer um upload do arquivo, mas como fazer o upload ? Eu não vi, até agora, nenhum exemplo com envio e recebimento de arquivos. Creio, não tenho certeza, que isso exigiria do desenvolvedor um conhecimento a mais do protocolo HTTP para poder trabalhar corretamente isso.
wmanesco
Usuário Nível 3
Usuário Nível 3
Mensagens: 116
Registrado em: 09 Set 2016 13:18
Localização: ITAJAI - SC

Classe Httpd

Mensagem por wmanesco »

Realmente não tem nada assim nos exemplos nem documentação.

Quando tiver tempo vou tentar desenvolver algo em relação a isso, também não sei se vai ser tão simples. Minha dúvida atual é em relação a subir este servidor, por exemplo, se tiver uma página desenvolvida com php + mysql, é simples, mas roda em cima do apache, neste caso não sei como subi-lá.
William Manesco
Harbour 3.x | Fivewin | BCC | MySQL (TDolphin) | HBQT | HBIDE | Atom
wmanesco
Usuário Nível 3
Usuário Nível 3
Mensagens: 116
Registrado em: 09 Set 2016 13:18
Localização: ITAJAI - SC

Classe Httpd

Mensagem por wmanesco »

Consegui alguma coisa, mas sem tempo para organizar corretamente:

Consegui realizar download via browser alterando o core do hbhttpd.

Na função UProcFiles(), adicionando estes headers o navegador efetua o download, agora para um client pegar este retorno acredito que seja até mais facil, teria que adicionar o header http referente a resposta, escrevendo o arquivo. Nessa função já faz isso, mas escrevendo no navegador.

Código: Selecionar todos

      UAddHeader("Content-Type", "application/cbl")
       UAddHeader( "Content-Disposition", "attachment; filename=" + UOsFileName( cFileName ) )
William Manesco
Harbour 3.x | Fivewin | BCC | MySQL (TDolphin) | HBQT | HBIDE | Atom
frazato
Usuário Nível 3
Usuário Nível 3
Mensagens: 219
Registrado em: 08 Jul 2004 07:45

Classe Httpd

Mensagem por frazato »

Baixei os fontes e não consegui nem compilar e possivél você me enviar o executavél para eu ter uma ideia e se possivél como compilou.

Frazato
wmanesco
Usuário Nível 3
Usuário Nível 3
Mensagens: 116
Registrado em: 09 Set 2016 13:18
Localização: ITAJAI - SC

Classe Httpd

Mensagem por wmanesco »

Qual problema de compilação?
William Manesco
Harbour 3.x | Fivewin | BCC | MySQL (TDolphin) | HBQT | HBIDE | Atom
wmanesco
Usuário Nível 3
Usuário Nível 3
Mensagens: 116
Registrado em: 09 Set 2016 13:18
Localização: ITAJAI - SC

Classe Httpd

Mensagem por wmanesco »

Na realidade acho que falei besteira. Da forma com que a classe está hoje, já é possível fazer o que você precisa (retornar determinado texto como resposta de uma requisição).
William Manesco
Harbour 3.x | Fivewin | BCC | MySQL (TDolphin) | HBQT | HBIDE | Atom
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Classe Httpd

Mensagem por Vlademiro »

Vamos começar do zero.

Primeiro : você deve usar o servidor que está na pasta extras do harbour. O servidor está em https://github.com/harbour/core na pasta extras/httpsrv.

Segundo: compile o servidor usando hbmk2. Lá tem dois tipos de servidores, uhtppd.hbp e uhttpdgd.hbp (a diferença entre eles é estética, por isso eu sempre uso o uhttpd.hbp pois funciona no linux de primeira)

Terceiro: Nesse ponto vc tem o servidor (como um apache, só que bem mais simples) todo feito em harbour. Mas e os programas ? Bem, dê uma olhada no arquivo modules.hbp. Veja que tem uma pasta modules lá dentro com alguns prg's de exemplo. O arquivo é gerado na pasta cgi-bin.

Aqui no fórum tem alguns bons exemplos também. Lembro que para executar os exemplos e eles funcionarem tem que criar uma pasta chamada session (ou sessions, no plural).

A proposta do harbour, nesse caso, é ser o próprio servidor e os módulos de execução. Tudo junto. Já tem gente usando esse servidor em produção, como um programador chamado Rafa Carmona (busca no google), mas eu não vi da parte dele nenhum código de exemplo, apenas telas e vídeos. Aqui no nosso fórum o Itamar postou alguns exemplos bem legais (acho que no inicio desse tópico).

Gostaria de poder organizar o que eu aprendi com esse servidor para vc, mas estou muito sem tempo para isso.
wmanesco
Usuário Nível 3
Usuário Nível 3
Mensagens: 116
Registrado em: 09 Set 2016 13:18
Localização: ITAJAI - SC

Classe Httpd

Mensagem por wmanesco »

Eu estava usando o exemplo da contrib, parece que este que está na pasta extras é um pouco diferente
William Manesco
Harbour 3.x | Fivewin | BCC | MySQL (TDolphin) | HBQT | HBIDE | Atom
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Classe Httpd

Mensagem por Vlademiro »

Sim, esse do extras é o ideal para produção pois já tem mais recursos. Por exemplo, no contribs só tem o servidor (o que é ideal para vc ter uma ideia inicial), mas o do extras é um servidor com módulos que podem ser trocados sem que o servidor saia do ar. No contribs, quando vc tinha que alterar o seu programa tinha que tirar o servidor do ar pois o seu programa fazia parte do próprio servidor. Mas no extras não, vc só tem que colocar o seu programa na pasta modules e compilar usando o hbp que compila tudo o que está lá. Fico imaginando que dá para ter a sua aplicação com servidor e tudo em multiplas plataformas.
Responder