Atomus 0 Denunciar post Postado Novembro 3, 2006 Galera, alguém pode me dizer como que eu crio campos e envio os mesmos para uma página web usando o método post sem usar o Indy? Uso o Delphi 5 aqui. Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Novembro 3, 2006 Desculpa, mas não entendi... O que seria criar campos e enviar ?Teria como colocar um exemplo ? Compartilhar este post Link para o post Compartilhar em outros sites
Atomus 0 Denunciar post Postado Novembro 3, 2006 Imagine um formulário HTML configurado para enviar dados com o método POST, com seus edits, textareas, comboboxes, files etc etc. E ao clicar e um botão submit, ele envia esses dados para a página web indicada na propriedade "action". Eu queria saber como posso fazer isso no Delphi 5, como que crio campos dinâmicos e envio para uma página web usando o método post, de modo que na página de quest eu consiga recuperar esses dados. Enviar via get eu até consegui (ex: recebe_dados.asp?Nome=Fulano&Idade=18), mas o get tem um limite de 1k e não atende o meu caso. Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Novembro 3, 2006 Já tentou usar o componente TWebBrowser ? Compartilhar este post Link para o post Compartilhar em outros sites
Atomus 0 Denunciar post Postado Novembro 3, 2006 Graças a sua ajuda cheguei ao artigo http://www.delphifaq.com/faq/delphi/network/f249.shtml e acho que resolveu o meu problema!! Vamos ver se agora vai! Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Novembro 3, 2006 Interessante, realmente com o WebBrowser se faz muita coisa... Dê um retorno caso funcione... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites
Atomus 0 Denunciar post Postado Novembro 3, 2006 Funcionou cara!!!! Valeu véio! você vai para o céu! :) Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Novembro 3, 2006 http://forum.imasters.com.br/public/style_emoticons/default/no.gif http://forum.imasters.com.br/public/style_emoticons/default/no.gif Muito novo para ir para o céu.... :D :D Compartilhar este post Link para o post Compartilhar em outros sites
rdportillo 0 Denunciar post Postado Novembro 7, 2006 Galera,estou usando o camponente TWebBrowser para fazer Post em uma página. Estou tentando enviar vários arquivos, porém com o componente só é enviado um arquivo. Além disso, preciso pegar as informações de retorno após o envio. Como que eu faço um refresh após cada envio. Tentei usasr o refresh do componente porém sempre ocorre um erro.Se alguém puder me ajudar agradeço. Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Novembro 7, 2006 Use o evento OnDocumentComplete, no caso somente é executado depois que a página ou o conteúdo for carregado, neste evento você pode disparar um Refresh se necessário... Compartilhar este post Link para o post Compartilhar em outros sites
rdportillo 0 Denunciar post Postado Novembro 7, 2006 Eu tentei usar o evento OnDocumentComplete, porém no caso de envio de dois arquivos somente entra nesse evento depois do envio do último arquivo. Eu não consigo pegar o retorno do envio do primeiro arquivo. Fiz um teste colocando um ShowMessage depois do envio de cada arquivo aí sim ele entra duas vezes no evento OnDocumentComplete, mas não entendi o porque ocorre isso. Será que você saberia uma outra forma de fazer isso??? Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Novembro 7, 2006 E se criasse uma função, que no caso ela ficaria chamando o TWebBrowser de acordo com o n° de arquivos, no caso se tiver dois arquivos, a função iria chamar duas vezes ele, podendo assim primeiro concluir um arquivo, tratar a mensagem e depois começar o outro... Compartilhar este post Link para o post Compartilhar em outros sites
rdportillo 0 Denunciar post Postado Novembro 7, 2006 Estou fazendo isso. Tenho uma função que é chamada tantas vezes quanto o número de arquivos. O código referente ao WebBrowser é o mesmo que foi sugerido em um dos tópicos, só fiz as alterações que eu precisava: EncodedDataString:= 'CGC_Origem=' + HTTPEncode(Origem)+'&'+ 'Nome_Arquivo=' + HTTPEncode(FileName)+'&'+ 'CGC_Destino=' + HTTPEncode(Destino)+'&'+ 'Tipo_Documento=' + HTTPEncode(TipoDoc)+'&'+ 'Tamanho_Arquivo=' + HTTPEncode(Tamanho)+'&'+ 'Id_Usuario=' + HTTPEncode( UserId )+'&'+ 'Conteudo_Arquivo=' + HTTPEncode(Conteudo); PostData:= VarArrayCreate([0, Length(EncodedDataString)-1], varByte); for i:= 1 to Length( EncodedDataString ) do PostData[i-1]:= Ord(EncodedDataString); Headers:= 'Content-type: application/x-www-form-urlencoded'#10#13; wbUploadEmviaPOP.Navigate(http://www.minhapagina.com.br/upload.asp' , EmptyParam, EmptyParam, PostData, Headers); O script me retorna um valor 0 se o post ocorreu com sucesso e também um id do arquivo. Com esse id eu devo renomear o arquivo original e trocar de diretório. O problema é que eu não estou conseguindo obter o retorno de todas as chamadas, apenas da última. Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Novembro 7, 2006 No caso somente consegue da última pois as demais logo que acaba já é chamado navamente a função para navegar novamente... Não teria como criar um flag de controle ? No caso somente depois que completou o documento e for salvo as informações necessárias você permite passar para o próximo...Poderia até mesmo adicionar os itens dentro de um StringList, e ir controlando por ali mesmo, no caso poderia ser um procedure que você chama uma vez, ele pega o primeiro registro do StringList e executada, remove ele da listagem, neste caso vai ser executado o WebBrowser, no OnDocumentComplete, você criaria todas as validações que precisa, e ali mesmo depois chama novamente a procedure, na procedure ele pega o próximo registro a ser executado... e assim vai indo até acabar... Uma idéia de como poderia controlar estas chamadas... Compartilhar este post Link para o post Compartilhar em outros sites
rdportillo 0 Denunciar post Postado Novembro 7, 2006 Márcio, eu utilizei uma flag de controle para que não tentasse enviar o próximo arquivo até que eu realizasse as verificações e validações no evento OnDocumentComplete. O problema é que ele não entra nunca nesse evento. Já não sei mais o que fazer. se puder me ajudar agradeço. Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Novembro 7, 2006 No caso você diz q ele não entra no evento OnDocumentComplete ? Estranho isto... Não teria como você disponibilizar um pequeno programa de teste ? Para ver o que acontece... Compartilhar este post Link para o post Compartilhar em outros sites
rdportillo 0 Denunciar post Postado Novembro 7, 2006 Posso sim. Me passa seu email por favor. Só pra te informar estou desenvolvendo com Delphi 5. Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Novembro 7, 2006 http://forum.imasters.com.br/public/style_emoticons/default/pinch.gif Compartilhar este post Link para o post Compartilhar em outros sites
rdportillo 0 Denunciar post Postado Novembro 8, 2006 Galera, estou tendo problemas em fazer um Post em um script ASP. Já tentei usar o TWebBrowser e não consegui porque preiso pegar o retorno do script e estou tentando enviar dois arquivos, porém só consigo utilizar o evento OnDocumentComplete no envio do último arquivo. Alguém já fez Post usando um desses dois componentes: TAdvHTTP ou TNMHTTP no Delphi 5???? Quem puder me ajudar agradeço. Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Novembro 9, 2006 http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites