请问如何用INDY发送一个HTTP请求?请求的内容是怎么得来的?(40分)

  • 主题发起人 主题发起人 星幻子
  • 开始时间 开始时间

星幻子

Unregistered / Unconfirmed
GUEST, unregistred user!
s:='POST http://service.qq.com/cgi-bin/remember HTTP/1.1'+#13#10;
s:=s+'Accept: */*'+#13#10;
s:=s+'Host: service.qq.com'+#13#10;
s:=s+'Content-Length:'+inttostr(4 + Length(edit1.Text))+#13#10;
s:=s+'Cookie: value=1234567890; verifysession='+#13#10;
s:=s+#13#10;
s:=s+'uin='+edit1.Text+#13#10;
ClientSocket1.Socket.SendText(s);

这段代码是我在网上KAO来的,功能是扫描一个QQ号有没密码保护的请求
请问是怎么得来的?
我想用INDY组件来实现这个,请问如何动手?
纯粹学习,请各位帮帮忙
 
就是构造一个HTTP请求到http://service.qq.com/cgi-bin/remember页面,检查返回的信息而已
有密码保护的话,会因为随便输入的附加码而产生错误,所以pos('附加码错误',ss)<>0
 
上面的仁兄可否留下比如QQ号什么的?
我的:15080137
 
请问如何 构造一个HTTP请求??
 
救命那~~~~~~~~~~~
 
晕啊回答我吧,要死人了
 
晕死没人回答
 
你那个例子是用的TCPClient,连接80端口,
实际这里用IdHTTP就可以了,以前帖子有很多这种代码,自己搜一下IdHTTP post就明白了。
比如上面的代码,IdHTTP可以写成:
var
fCookie, strBuf: String;
sParams: TStringStream;
begin
sParams := TStringStream.create('');
IdHTTP1.Request.CustomHeaders.Text:='Cookie: value=1234567890; verifysession='#13#10#13#10'uin='+edit1.Text; //构造一个Cookie
try //主要是这里,post页面,并取得其返回值
strBuf:=IdHTTP1.Post('http://service.qq.com/cgi-bin/remember', sParams);
finally
sParams.Free;
if pos('附加码错误',strBuf)<>0 then
showmessage('有密码保护!')
else showmessage('无密码保护或网页无响应');
end;
end;
 
可能还要修改Cookie部分,顺便给你几个资料吧:

用Idhttp.post方法将客户端的文本提交给服务器
http://www.slwl.cn/Article/2005/200506/693.html

用idHttp控件如何提交数据?
http://www.delphibbs.com/delphibbs/dispq.asp?lid=859136
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2119145
 
非常感谢!!!!!!!!!!!!
我去试试
 
后退
顶部