我想通过,socket发送http请求的方法,往某个网页,发送一个字符串请问该怎么写?请大家看看我的代码,如下:
function PostURLSock(str:string):boolean;
var
  s:Tsocket;
  wsda:Twsadata;
  sai:Sockaddr_in;
  ph:phostent;
  info:string;
  buff:array[0..63]of char;
begin
  if 0<>wsastartup(makeword(2,2),wsda) then exit;
  s:=socket(AF_INET,Sock_STREAM,0);
  ph:=gethostbyname('http://xxxx.com');//目标主机  sai.sin_family:=AF_INET;
  sai.sin_addr.S_addr:=Lpdword(lpdword(ph.h_addr_list)^)^;
  sai.sin_port:=htons(80);  if socket_error=connect(s,sai,sizeof(sai)) then exit;  info :='GET / http 1.1'+#13#10;
  info := info +'Accept:*/*' +#13#10;
  info := info +'http://xxx/yyyy.asp '+#13#10;  //目标网页
  info := info +str+#13#10;                     //str就是我要发的字符串,这地方是我自己乱加的,不知道该怎么写
  if socket_error=send(s,pchar(info)^,length(info),0) then exit;  if socket_error=recv(s,buff,sizeof(buff),0) then exit;
  result:=true;  WSACleanup();
end;
请大家帮我实现一下

解决方案 »

  1.   

    网页可以发送字符串的么?网页要接收字符串那也是通过表单域,或者Query Parameter.
    先get该页面,然后找到它的表单域,也就是那个<form></form>其中有一个再找到其链接地址,以及相应需要填充的内容,再进行post.post的Http头后面,跟上那些需要填充的内容,比如有个text叫'name',那就跟上'name=yourname',多个之间使用'&'分隔,post的HTTP头,指明这些内容有多少字节数。
      

  2.   

    1说的好象对了,我恳求再详细地说一说那个post的http头的问题