如何忽略Indy中POST请求的响应?

时间:2013-05-15 02:09:24

标签: delphi indy

如何使用Indy(10)发送POST请求,然后忽略结果或低级API recv? 我问,因为我不需要结果,我想节省带宽。

1 个答案:

答案 0 :(得分:2)

使用TIdHTTP时,您无法忽略recv(),但至少可以忽略响应数据。调用以Post()参数作为输出的AResponseContent: TStream的重载版本,并将TStream设置为nilTIdHTTP仍会从套接字中读取响应头和正文数据,但它会丢弃它为正文读取的内容。如果使用HTTP keep-alives,这很重要,因为它可以使连接保持同步,以便后续的HTTP请求可以继续在同一连接上发送。如果您未使用HTTP保持活动,则会在Post()退出之前关闭连接。如果您希望尽快关闭连接,可以尝试在TIdHTTP.OnWorkAWorkModewmRead事件中引发异常,但这可能效果不佳,尤其是在使用HTTP重定向时

如果您只想发送POST请求并完全忽略响应,最好使用TIdTCPClient,而只需手动发送自己的POST请求,然后立即关闭连接。