ZueRa Postado Agosto 5, 2006 Denunciar Share Postado Agosto 5, 2006 Pessoal, estou em dúvida em relação ao Cs.Socket, porque ele não retorna o resultado que eu queria no 'OnRead'.Ele faz o seguinte: o usuário digita a palavra que ele quer procurar, ai o ClientServer manda o comando para o site. Até aqui tudo bem...Porém o resultado que eu queria seriam os sites (como numa lista TXT), dispostos +/- dessa forma em um TMemo:www.site1.com.brwww.site2.com.brcomo se fosse um "google" entendem ?Porém ele retorna isso:HTTP/1.1 400 Bad RequestContent-Type: text/htmlDate: Sat, 05 Aug 2006 04:00:52 GMTConnection: closeContent-Length: 35<h1>Bad Request (Invalid Verb)</h1>*** Código do lugar que eu acho que está erradoprocedure TFprincipal.CsConnect(Sender: TObject; Socket: TCustomWinSocket); var pt:string; begin pt:='/myftp/index.php?que='; Cs.Socket.SendText(Cs.Host + pt + Edit1.Text + chr(13)+chr(10)); end; procedure TFprincipal.BtokClick(Sender: TObject); begin Cs.Host:='www.site.com; Cs.Port:=80; Cs.ClientType:=ctNonBlocking; Cs.Active:=TRUE; end;Alguém pod m ajudar ?Grato! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Agosto 5, 2006 Denunciar Share Postado Agosto 5, 2006 Nunca usei este componente, mas experimente fazer:Cs.Socket.SendText('GET ' + pt + Edit1.Text + ' 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));Veja se dá certo.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Visitante Postado Agosto 5, 2006 Denunciar Share Postado Agosto 5, 2006 Pessoal, estou em dúvida em relação ao Cs.Socket, porque ele não retorna o resultado que eu queria no 'OnRead'.Ele faz o seguinte: o usuário digita a palavra que ele quer procurar, ai o ClientServer manda o comando para o site. Até aqui tudo bem...Porém o resultado que eu queria seriam os sites (como numa lista TXT), dispostos +/- dessa forma em um TMemo:www.site1.com.brwww.site2.com.brcomo se fosse um "google" entendem ?Porém ele retorna isso:HTTP/1.1 400 Bad RequestContent-Type: text/htmlDate: Sat, 05 Aug 2006 04:00:52 GMTConnection: closeContent-Length: 35<h1>Bad Request (Invalid Verb)</h1>*** Código do lugar que eu acho que está erradoprocedure TFprincipal.CsConnect(Sender: TObject; Socket: TCustomWinSocket); var pt:string; begin pt:='/myftp/index.php?que='; Cs.Socket.SendText(Cs.Host + pt + Edit1.Text + chr(13)+chr(10)); end; procedure TFprincipal.BtokClick(Sender: TObject); begin Cs.Host:='www.site.com; Cs.Port:=80; Cs.ClientType:=ctNonBlocking; Cs.Active:=TRUE; end;Alguém pod m ajudar ?Grato!PERFECTTTTTTTTTTTTTT!!!!!!!!!!!!!!!!!Ahhhhhhhhhhhhhh... vlw vlw vlw vlw!!muito obrigado!!!!Demais... vlwzaum !!!!Só que tem um porém... os sites estaum saindo dessa forma www.site.com.br<br>www.site.com.brComo posso consertar isso ?E novamente obrigado !! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Agosto 5, 2006 Denunciar Share Postado Agosto 5, 2006 Adicione StrUtils na cláusula Uses e depois faça:Memo1.Text := AnsiReplaceStr(Memo1.Text, '<br>', chr(13)+chr(10));E você terá os <br> substituídos por quebras de linhas.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ZueRa Postado Agosto 5, 2006 Autor Denunciar Share Postado Agosto 5, 2006 Adicione StrUtils na cláusula Uses e depois faça:Memo1.Text := AnsiReplaceStr(Memo1.Text, '<br>', chr(13)+chr(10));E você terá os <br> substituídos por quebras de linhas.Abraços,GraymalkinSim... isso consegui ^^Agora está retornando as informações do serverHTTP/1.1 400 Bad RequestContent-Type: text/htmlDate: Sat, 05 Aug 2006 04:00:52 GMTConnection: closeContent-Length: 35E nem consegui... dakele jeito que você m disse... =/ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Agosto 6, 2006 Denunciar Share Postado Agosto 6, 2006 Qual a primeira coisa que vem depois destas informações do servidor? Parece que não dá pra usar o "Connection: close" porque ele pode mudar de lugar. Mas, o que vem depois?Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ZueRa Postado Agosto 6, 2006 Autor Denunciar Share Postado Agosto 6, 2006 Qual a primeira coisa que vem depois destas informações do servidor? Parece que não dá pra usar o "Connection: close" porque ele pode mudar de lugar. Mas, o que vem depois?Abraços,GraymalkinGraymalkin tem certeza que não dá para usar o Connection: Close ? talvez dê...A primeira coisa que vem após as informações do servidor, são os sites propriamente ditos.Abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Agosto 6, 2006 Denunciar Share Postado Agosto 6, 2006 No seu exemplo anterior o "Content-Length" vem depois do "Connection: close". Antes dos sites propriamente ditos, não haveria alguma tag (como <html>)?Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ZueRa Postado Agosto 6, 2006 Autor Denunciar Share Postado Agosto 6, 2006 No seu exemplo anterior o "Content-Length" vem depois do "Connection: close". Antes dos sites propriamente ditos, não haveria alguma tag (como <html>)?Abraços,GraymalkinGraymalkin, não.O exemplo acima, acho que é porque foi em um exemplo de "erro". Quando ainda o programa não funcionava, até você ajudar.Mas agora o "Connection: Close" está sempre vindo no final.E respondendo sua pergunta, não há nenhuma TAG <html> ou outras antes dos sites.Grato, abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Agosto 6, 2006 Denunciar Share Postado Agosto 6, 2006 Ok, então você pode tentar aquela dica que eu te passei (do Pos() e do RightStr()), apenas verifique se é "Connection: Close" ou "Connection: close", para poder procurar a string certa.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ZueRa Postado Agosto 6, 2006 Autor Denunciar Share Postado Agosto 6, 2006 Ok, então você pode tentar aquela dica que eu te passei (do Pos() e do RightStr()), apenas verifique se é "Connection: Close" ou "Connection: close", para poder procurar a string certa.Abraços,GraymalkinSim... estava procurando ela, porém, quando você me passou, eu nçao estava no meu PC.Por infelicidade, esse PC não tinha salvado os logs.Se puder reescrever, agradeço.Grato,ZueRa. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Agosto 6, 2006 Denunciar Share Postado Agosto 6, 2006 Se me lembro bem, era isso:posicao := Pos('Connection: close', memo1.text); memo1.text := RightStr(memo1.text, Length(memo1.text)-posicao);É provável que você vá ter que subtrair o tamanho de 'Connection: close' para obter os dados inclusive sem essa linha, mas faça o teste com o código acima.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ZueRa
Pessoal, estou em dúvida em relação ao Cs.Socket, porque ele não retorna o resultado que eu queria no 'OnRead'.
Ele faz o seguinte: o usuário digita a palavra que ele quer procurar, ai o ClientServer manda o comando para o site. Até aqui tudo bem...
Porém o resultado que eu queria seriam os sites (como numa lista TXT), dispostos +/- dessa forma em um TMemo:
www.site1.com.br
www.site2.com.br
como se fosse um "google" entendem ?
Porém ele retorna isso:
HTTP/1.1 400 Bad Request
Content-Type: text/html
Date: Sat, 05 Aug 2006 04:00:52 GMT
Connection: close
Content-Length: 35
<h1>Bad Request (Invalid Verb)</h1>
*** Código do lugar que eu acho que está errado
Alguém pod m ajudar ?
Grato!
Link para o comentário
Compartilhar em outros sites
11 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.