ZueRa Postado Setembro 21, 2006 Denunciar Share Postado Setembro 21, 2006 Galera, estou com uma dúvida em relação ao método POST do (ClientSocket).Por exemplo (EXEMPLO)Em relação ao site abaixo:http://www.zone-h.org/component/option,com_notify/Itemid,89/(observem os Edits lá em baixo)como poderei fazer para por exemplo, usar o método POST para enviar o que o usuário digitar no programa ? (como se estivesse nessa url, e escrevendo tudo nos edits de lá)Sei que será +/- assim: ClientSocket.Socket.SendText('POST ' + algumacoisa + ' HTTP/1.1' + chr(13)+chr(10) + 'Host: ' + Cs.Host + chr(13)+chr(10) + 'Accept: */*' + chr(13)+chr(10) + 'Connection: Close' + chr(13)+chr(10)+chr(13)+chr(10));mas.. como integra-lo com o site ? o.Oestou perdido...Alguém tem uma idéia ?Grato. Link para o comentário Compartilhar em outros sites More sharing options...
0 ZueRa Postado Setembro 21, 2006 Autor Denunciar Share Postado Setembro 21, 2006 Fiz um teste aqui, mas não deu certo...fiz 2 forms, e 2 ComboBox (como na página citada acima)peguei o código HTML dessa página, coloquei em um Memo (chamado de MemoCode)e coloquei em cada Edit desse código HTML um "#" em ordem crescente...dessa forma:no primeiro edit: #segundo edit: ##no primeiro combobox: ###no segundo combobox: ####pronto, feito isso, ao usuário clicar no botão ok, pedi para substituir o que foi digitado nos edits do programa no lugar dos "#".e utilizei o método POSTbem... o código é esse.. (mas não deu certo)procedure TFzoneh.Button1Click(Sender: TObject); begin Cs.Host := 'www.zone-h.org'; Cs.Port := 80; Cs.ClientType := CtNonBlocking; Cs.Active := true; end; procedure TFzoneh.CsConnect(Sender: TObject; Socket: TCustomWinSocket); var datap:string; dataa:string; datab:string; datac:string; st:string; begin datap := stringReplace(Memocode.Text,'#',Eddefacer.Text,[rfReplaceAll]); dataa := stringReplace(Memocode.Text,'##',Eddomain.Text,[rfReplaceAll]); datab := stringReplace(Memocode.Text,'###',Cb.Text,[rfReplaceAll]); datac := stringReplace(Memocode.Text,'####',Cbu.Text,[rfReplaceAll]); with Cs.Socket do begin st := '/component/option,com_notify/Itemid,89/'; Cs.Socket.SendText('POST ' + st + datap + ' HTTP/1.1' + chr(13)+chr(10) + 'Host: ' + Cs.Host + chr(13)+chr(10) + 'Accept: */*' + chr(13)+chr(10) + 'Connection: Close' + chr(13)+chr(10)+chr(13)+chr(10)); Cs.Socket.SendText('POST ' + st + dataa + ' HTTP/1.1' + chr(13)+chr(10) + 'Host: ' + Cs.Host + chr(13)+chr(10) + 'Accept: */*' + chr(13)+chr(10) + 'Connection: Close' + chr(13)+chr(10)+chr(13)+chr(10)); Cs.Socket.SendText('POST ' + st + datab + ' HTTP/1.1' + chr(13)+chr(10) + 'Host: ' + Cs.Host + chr(13)+chr(10) + 'Accept: */*' + chr(13)+chr(10) + 'Connection: Close' + chr(13)+chr(10)+chr(13)+chr(10)); Cs.Socket.SendText('POST ' + st + datac + ' HTTP/1.1' + chr(13)+chr(10) + 'Host: ' + Cs.Host + chr(13)+chr(10) + 'Accept: */*' + chr(13)+chr(10) + 'Connection: Close' + chr(13)+chr(10)+chr(13)+chr(10)); end; end; procedure TFzoneh.CsRead(Sender: TObject; Socket: TCustomWinSocket); begin Mresult.Lines.Add(Socket.ReceiveText); end; end.Obs.: o "Cs" é o ClientSocket.e o "Cb" é o ComboBox.bem... se alguém puder ajudar.. agradeço :D Link para o comentário Compartilhar em outros sites More sharing options...
0 Churc Postado Setembro 21, 2006 Denunciar Share Postado Setembro 21, 2006 fale zuera blzzentão, nunca usei este método, mas uma coisa eu te garanto, a forma que você está usando está errada, vou explicar o porque...As informações que você está enviando pro servidor, estão indo quebradas, a cada socket.sendtext que você está executando, o servidor do zone-h está recebendo este texto e o interpretando, e não recebendo um por um segurando e interpretando depois, até porque mesmo que fosse assim, como ele iria saber que você terminou de enviar....Outra coisa, Connection: Close; a conexão é fechada a cada socket.sendtext...Acho que você vai ter que procurar na net algo sobre, pois acredito que são usados mais alguns cabeçalhos http para poder usar o método.eu nunca mexi com o método post, então não sei como te ajudar...se eu achar algo sobre eu posto aqui...abraços Link para o comentário Compartilhar em outros sites More sharing options...
0 ZueRa Postado Setembro 21, 2006 Autor Denunciar Share Postado Setembro 21, 2006 Uhn.. entendi...vou ver se consigo aqui uma forma...obrigado desde já =) Link para o comentário Compartilhar em outros sites More sharing options...
0 ZueRa Postado Setembro 21, 2006 Autor Denunciar Share Postado Setembro 21, 2006 Churc, veja o que um amigo meu disse:• SmartBoy_ & copyleft {zzZZZzz} says:tem uma ferramenta do indy• SmartBoy_ & copyleft {zzZZZzz} says:que bota diretu os dados do postdepos é so daridhttp1.post(url, dados_do_post);sabe algum modo de fazer isso com INDY ?porque nunca trabalhei com ele....Grato. Link para o comentário Compartilhar em outros sites More sharing options...
0 ZueRa Postado Setembro 21, 2006 Autor Denunciar Share Postado Setembro 21, 2006 Ninguém ? :( Link para o comentário Compartilhar em outros sites More sharing options...
0 Progr'amador Postado Setembro 21, 2006 Denunciar Share Postado Setembro 21, 2006 Olá ZueRa,seria isso:var Ts : TStringList; begin Ts := TStringList.Create; try Ts.Add('blablabla'); Ts.Add('blablabla'); Ts.Add('blablabla'); IdHttp.Request.ContentType := 'application/x-www-form-urlencoded'; IdHTTP.Post('http://www.site.com/script.php',Ts); finally Ts.free; end;Abs. Progr'amador. Link para o comentário Compartilhar em outros sites More sharing options...
0 ZueRa Postado Setembro 21, 2006 Autor Denunciar Share Postado Setembro 21, 2006 Progr'amadormas me diga... como o server vai saber, que estou me referindo EXATAMENTE a aqueles forms ?sendo que não tem nada que "refira de alguma forma" a eles ?Meu code ficou assim:procedure TFzoneh.Button1Click(Sender: TObject); var Ts : TStringList; begin Ts := TStringList.Create; try Ts.Add('blablabla'); Ts.Add('blablabla'); Ts.Add('blablabla'); Ts.Add('blablabla'); IdHttp.Request.ContentType := 'application/x-www-form-urlencoded'; IdHTTP.Post('www.zone-h.org/component/option,com_notify/Itemid,89/',Ts); finally Ts.free; end; end; end.Grato.Acabei de testar...não deu certo =/acho que tem que fazer alguma referência aos forms... Link para o comentário Compartilhar em outros sites More sharing options...
0 ZueRa Postado Setembro 22, 2006 Autor Denunciar Share Postado Setembro 22, 2006 Alguém poderia me dar um help ?Grato. Link para o comentário Compartilhar em outros sites More sharing options...
0 ZueRa Postado Setembro 23, 2006 Autor Denunciar Share Postado Setembro 23, 2006 Ninguém ?já tentei de tudo e, nada... Link para o comentário Compartilhar em outros sites More sharing options...
0 paulobergo Postado Setembro 25, 2006 Denunciar Share Postado Setembro 25, 2006 Olá...Veja só... eu há muito tempo (desde o Delphi3) uso cgi e isapi, tanto nas aplicações totalmente web como nas mistas (forms com gravação e recuperação de dados com TTable e TQuery e cgi's e isapi's).Durante este tempo, nunca consegui usar o método Post nas ISAPIs (dll's) e CGIs (exe's), quando eu escrevia diretamente a chamada diretamente na URL (um simples link em página htm mesmo)... ou seja, só coseguia usar o método POST diretamente nos botões "submit" dos forms...Assim, toda vez que preciso fazer, por exemplo, uma pesquisa num banco de dados, através dos meus programas rodando sob o IIS ou Personal Web (XP e 98 respectivamente), uso GET.De qualquer forma, vou pesquisar mais...Ok? Link para o comentário Compartilhar em outros sites More sharing options...
0 Progr'amador Postado Novembro 8, 2006 Denunciar Share Postado Novembro 8, 2006 :angry: O cara não tem nada pra fazer e fica postando spam neste tópico, já deletei um monte e o cara continua postando, vou ter que fechar... Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ZueRa
Galera, estou com uma dúvida em relação ao método POST do (ClientSocket).
Por exemplo (EXEMPLO)
Em relação ao site abaixo:
http://www.zone-h.org/component/option,com_notify/Itemid,89/
(observem os Edits lá em baixo)
como poderei fazer para por exemplo, usar o método POST para enviar o que o usuário digitar no programa ? (como se estivesse nessa url, e escrevendo tudo nos edits de lá)
Sei que será +/- assim:
mas.. como integra-lo com o site ? o.O
estou perdido...
Alguém tem uma idéia ?
Grato.
Link para o comentário
Compartilhar em outros sites
11 respostass a esta questão
Posts Recomendados