Delphi 如何在不使用Indy或WinINet的情况下发送HTTP请求?
我正在为HTTP请求寻找IdHTTP的轻量级替代方案。最好是不使用WinINet的。我需要向我自己的网站发送请求(以便我可以配置任何可能需要的设置)。要获得最大的控制量和最少的开销,只需直接使用WinSock API并手动发送您自己的HTTP请求。有关HTTP协议的详细信息,请阅读。试试。不过,我不确定它是否在使用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 等到你接通了。现
telnet www.yoursite.com 80
等到你接通了。现在输入
GET /
好的,很简单
但在这之后,事情变得更复杂了。您必须解析头,处理重定向、超时、缓存、代理等。
使用最简单的单线程实现,您的应用程序可能会冻结,直到下载完成
您可能能够在应用程序中完成所需的操作,但作为一个通用HTTP客户机,您的实现将非常糟糕,除非您花费大量时间在它上以使事情正常进行 我个人喜欢导入MSXML2_TLB并使用CoServerXmlHTTPRequest.Create,尤其是在同一个项目中需要XML时。那么,WinINet的级别太高(限制太多)?使用
TIdHTTP有什么问题吗?没有“轻量级”的定义,这不是什么问题。。。大部分代码都是你自己写的。不要忘记编写自己的TCP/IP堆栈,因为依赖windows DLL是不好的(否则我们将使用WinHttp)。我同意不使用WinInet,但WinHttp是明智的方法。