PHP关闭标头

4

我有一个应用程序,它通过XML连接到我的Web服务器并传输数据。 我使用的标头是:

POST /app/API/Data/Receiver.php HTTP/1.1
User-Agent: Custom User Agent 1.0.0
Accept: text/xml
Content-Type: text/xml
Content-Length: 1580
Host: servername.com

该应用程序会处理数据并返回自己格式化为XML的回复。我在响应中设置的标题之一是:

header("Connection: close");

当我从我的PC上的简单应用程序(C++)发送连接并发送数据时,一切正常,我能够正确地收到关闭头信息,并且在数据可用后立即关闭连接。当我使用GSM调制解调器和嵌入式应用程序发送完全相同的数据时,连接头返回为:
header("Connection: keep-alive");

GSM调制解调器在连接关闭之前一直等待,通常会超时。

是否有一种方法可以在服务器上关闭连接,以使GSM端不会超时?

2个回答

2

你的GSM服务提供商可能会透明地代理连接。尝试在非标准端口上发送数据(即非80、8080、443端口)。

同时,将缓存控制标头设置为私有可能有效。

Cache-Control: PRIVATE

0

标题只是普通文本,但在 PHP 中一旦发送了数据就无法发送。请尝试以下方法:

echo "\r\n\r\nConnection: close";
die();

并根据您的需求进行调整


我相信(从他的问题中看)他已经发送了“Connection: close”,实际上是硬件返回了“Connection: Keep-alive”。 - Sammaye
那么崩溃应该能解决这个问题吧? - Cole Tobin
不行,因为die()只影响PHP解释器,而不影响Web服务器进程。 - user149341
但是关闭解释器会关闭连接,对吗? - Cole Tobin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接