我的客户正在发送:
POST /xxx/yyy HTTP/1.1
Host: localhost:9009
User-Agent: gSOAP/2.8
Content-Type: text/xml; charset=utf-8
Content-Length: 2442
Connection: keep-alive
SOAPAction: ""
但服务器回复:
HTTP/1.1 200 OK
Content-Type: text/xml;charset=UTF-8
Content-Length: 11182
Server: Jetty(8.1.14.v20131031)
服务器是否应该返回“Connection:keep-alive”? 我看到之后客户端关闭了连接,尽管它被配置为保持连接打开 我以为是因为服务器没有在回复中提供keep-alive(这是RFC吗?)。
答案 0 :(得分:0)
在我的情况下,gSoap关闭连接的原因与从服务器返回的HTTP头无关,但是你需要通过调用以下方式指定两个方向上的keep-alive标志:
soap_set_imode(this, SOAP_IO_KEEPALIVE);
soap_set_omode(this, SOAP_IO_KEEPALIVE);
从我在HTTP 1.1中读到的内容,持久连接是默认连接,因此如果服务器没有返回“Connection:close”,则连接也可以用于下一个请求。