gpt4 book ai didi

Delphi - 使用 Indy HTTP 客户端将响应发送回服务器

转载 作者:行者123 更新时间:2023-12-03 15:26:07 24 4
gpt4 key购买 nike

我正在使用 Indy idHTTP 对象从服务器请求 XML 数据。发出请求后,服务器会发送回复,我可以读取回复 header OK:结果:= IdHTTP1.Response.ResponseText;

然后,他们的系统会继续定期发送未经请求的 XML 数据,直到预定的超时期限到期。

但是,客户现在希望我的客户端应用程序在每次收到数据时向他们发送 HTTP 响应(基于成功解析 XML 的响应)。

如果我是服务器,我可以弄清楚如何发送响应,但是如何生成响应 header 并使用我的 idHTTP1 客户端仅发布(或放置、发送等) header 。

这是我认为的,在 RFC 2616 中没有完全定义,因为服务器通常发送 HTTP 响应,而不是客户端,即:

6 Response

"After receiving and interpreting a request message, a server responds with an HTTP response message."

我以为我可以使用 TIdHTTPResponseInfo 并使用 WriteHeader 方法,但无法弄清楚如何设置与我需要回复的 URL 的链接(如果我是客户端)。

我使用的是 Delphi XE 和 Indy 10.5.7

我尝试了很多方法,但都没有成功。

非常感谢任何帮助或可能的代码示例!

最佳答案

您的问题可以分为两部分:(a) 我必须向服务器发送哪些数据来通知服务器,以及 (b) 如何使用 IdHTTP 发送这些数据。

发送数据流直到连接关闭符合HTTP标准,HTTP是一种请求-响应协议(protocol)。如果客户端收到数据作为响应,则它无法回复自己的响应 - 客户端只能发送另一个请求。因此,您的任务是弄清楚服务器会接受什么样的请求作为数据接收的确认。一旦你明白了这一点,你将能够发现如何(如果)使用 IdHTTP 实现这一点。

更新:如果您应该向服务器发送 200 OK,那么,这不符合 HTTP 协议(protocol)规范。您可以尝试访问 HTTP 客户端后面的套接字并仅发送 7 个字节(200 OK + CRLF)。

关于Delphi - 使用 Indy HTTP 客户端将响应发送回服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4842954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com