如何使用Indy(10)发送POST请求,然后忽略结果或低级API recv
?
我问,因为我不需要结果,我想节省带宽。
答案 0 :(得分:2)
使用TIdHTTP
时,您无法忽略recv()
,但至少可以忽略响应数据。调用以Post()
参数作为输出的AResponseContent: TStream
的重载版本,并将TStream
设置为nil
。 TIdHTTP
仍会从套接字中读取响应头和正文数据,但它会丢弃它为正文读取的内容。如果使用HTTP keep-alives,这很重要,因为它可以使连接保持同步,以便后续的HTTP请求可以继续在同一连接上发送。如果您未使用HTTP保持活动,则会在Post()
退出之前关闭连接。如果您希望尽快关闭连接,可以尝试在TIdHTTP.OnWork
为AWorkMode
时wmRead
事件中引发异常,但这可能效果不佳,尤其是在使用HTTP重定向时
如果您只想发送POST请求并完全忽略响应,最好使用TIdTCPClient
,而只需手动发送自己的POST请求,然后立即关闭连接。