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

Delphi 如何在不使用Indy或WinINet的情况下发送HTTP请求?,delphi,delphi-7,Delphi,Delphi 7,我正在为HTTP请求寻找IdHTTP的轻量级替代方案。最好是不使用WinINet的。我需要向我自己的网站发送请求(以便我可以配置任何可能需要的设置)。要获得最大的控制量和最少的开销,只需直接使用WinSock API并手动发送您自己的HTTP请求。有关HTTP协议的详细信息,请阅读。试试。不过,我不确定它是否在使用WinInet。除非您真的知道自己在做什么,否则我不建议您将HTTP内容做得太低级 转到命令提示符,然后键入: telnet www.yoursite.com 80 等到你接通了。现

我正在为HTTP请求寻找IdHTTP的轻量级替代方案。最好是不使用WinINet的。我需要向我自己的网站发送请求(以便我可以配置任何可能需要的设置)。

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

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

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

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

telnet www.yoursite.com 80
等到你接通了。现在输入

GET /
好的,很简单

但在这之后,事情变得更复杂了。您必须解析头,处理重定向、超时、缓存、代理等。 使用最简单的单线程实现,您的应用程序可能会冻结,直到下载完成


您可能能够在应用程序中完成所需的操作,但作为一个通用HTTP客户机,您的实现将非常糟糕,除非您花费大量时间在它上以使事情正常进行

我个人喜欢导入MSXML2_TLB并使用CoServerXmlHTTPRequest.Create,尤其是在同一个项目中需要XML时。

那么,WinINet的级别太高(限制太多)?使用
TIdHTTP有什么问题吗?没有“轻量级”的定义,这不是什么问题。。。大部分代码都是你自己写的。不要忘记编写自己的TCP/IP堆栈,因为依赖windows DLL是不好的(否则我们将使用WinHttp)。我同意不使用WinInet,但WinHttp是明智的方法。