1
编辑:我需要在基于delphi的应用程序脚本引擎内与TTCPBlocksocket进行POST连接。德尔福突触TTCPBlockSocket
如何判断突触何处首部结束和主体(帖子元素)开始?或者我应该发送他们在不同的数据包?谢谢 !
begin
Head:= TStringList.Create;
Head.Add('GET/HTTP/1.1');
Head.Add('Accept: */*');
Head.Add('Accept-Encoding: gzip, deflate');
Head.Add('Host: www.google.ru');
Head.Add('Connection: Keep-Alive');
Head.Add(#10#13);
body:= TStringList.Create;
body.Add('username=adr');
body.Add('login=adr');
body.Add('password=adr');
body.Add('r_password=adr');
body.Add('submit=register');
Socket:= TTCPBlockSocket.Create;
Socket.connect('108.167.137.28', '80');
if (Socket.LastError <> 0) then Exit;
Socket.SendString(Head.Text);
谢谢大卫,我编辑了这篇文章,希望现在更容易理解。 –
我读过mcve指南,很遗憾,由于不是免费的,我无法共享重现错误所需的程序。我已经发布的代码的和平是只是为了得到什么,我试图完成一个想法,我想我的主要问题是很清楚的,它只是basicly如何形成一个HTTP POST包,感谢您的支持! –
首先,你上面的例子是错误的。 GET请求不能有一个主体,你需要'POST'来代替。其次,Synapse有一个['THTTPSend'](http://synapse.ararat.cz/doc/help/httpsend.html)类,你应该使用它来做HTTP请求。不要直接使用'TTCPBlockSocket'来手动实现HTTP。在上面的例子中,你会使用'THTTPSend.HttpPostURL()'方法发送你的'name = value'对。 –