如何在不使用Indy或WinINet的情况下发送HTTP请求?

时间:2013-01-24 21:54:00

标签: delphi delphi-7

我正在为HTTP请求寻找IdHTTP的轻量级替代品。最好是那些不使用WinINet的。我需要向我拥有的网站发送请求(因此我可以配置可能需要的任何设置)。

4 个答案:

答案 0 :(得分:5)

要获得最大的控制量和最少的开销,只需直接使用WinSock API并手动发送自己的HTTP请求。有关HTTP协议的详细信息,请阅读RFC 2616

答案 1 :(得分:2)

除非你真的知道自己在做什么,否则我不建议将HTTP内容放得太低。

转到命令提示符,然后键入:

telnet www.yoursite.com 80

等到你连接完毕。现在输入

GET /

好的,这很容易。

但在此之后它变得更加复杂。您将不得不解析标头,处理重定向,超时,缓存,代理等。 使用最天真的单线程实现,您的应用程序可能会冻结,直到您的下载完成。

您可以在应用程序中执行您需要执行的操作,但作为通用HTTP客户端,您的实现会很糟糕,除非您花费大量时间来完成任务。

答案 2 :(得分:0)

试试SynapseLib。不过,我不确定它是否使用WinInet。

答案 3 :(得分:0)

我个人喜欢导入MSXML2_TLB并使用CoServerXmlHTTPRequest.Create,特别是如果我在同一个项目中需要XML。