您好,登錄后才能下訂單哦!
場景
在不同的開發機器上,建立HTTP1.1連接,有的機器會進行一兩次交互后,會檢測到斷開連接。這種情況下,會需要重連服務器。一般斷開的原因包括硬件/路由/代理服務器。
目前嘗試添加Keep-Alive字段,目前來看估計跟機器有關
摘自
You are assuming that the connection is staying open after each HTTP response is received, but that is
not guaranteed. You have to look at the server's actual HTTP response (specifically, at the HTTP
version reported in the status line, and at the Connection header) to know if the server is leaving the
connection open or not.
You are sending an HTTP 1.1 request, but there is no guarantee that the server will reply with an HTTP
1.1 response.
If the response is using HTTP 0.9, you must close the socket and reconnect before sending the next HTTP
request.
If the response is using HTTP 1.0, and if the Connection header does not say keep-alive, then you must
close the socket and reconnect before sending the next HTTP request.
If the response is using HTTP 1.1, and if the Connection header does not say close, then the server
left the connection open on its end, and you can reuse the same connection for the next request.
However, you do still need to take into account the possibility that the connection might be closed
externally (by a firewall/router/proxy, etc) before you actually send the next HTTP request.
So in the case of either HTTP 1.0 or 1.1, if you are expecting the connection to remain open, but send
() fails with an error indicating the connection was lost, simply close the socket and reconnect and
then send the same HTTP request again.
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。