我有一个应用程序连接到我的Web服务器并通过XML传输数据。 我连接的标题是:
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端不会超时?
答案 0 :(得分:2)
您的GSM服务提供商可能透明地代理连接。尝试在非标准端口上发送数据(即非80,8080,443)
另外,将缓存控制标头设置为私有可能有效。
Cache-Control: PRIVATE
答案 1 :(得分:0)
标题只是纯文本,但在PHP中发送数据后无法发送。试试这个:
echo "\r\n\r\nConnection: close";
die();
并根据您的需求进行调整