如何防止HttpClient发送Connection头

Mat*_*wam 6 c# http-headers dotnet-httpclient

HttpClient默认包含"Keep-Alive".我已经能够将其设置为"关闭",httpClient.DefaultRequestHeaders.ConnectionClose = true;但如何完全省略它?

Tod*_*ier 11

我已经看到了这个要求之前据我所知,没有人(甚至没有很大乔恩斯基特)想出了一个办法,以避免发送的Connection报头中HttpClientHttpWebRequest世界上没有完全另起炉灶.它发生在杂草深处的某个地方.

ConnectionClose可以为空,但在两个HttpClient.DefaultRequestHeadersAND 上将其设置为null HttpRequestMethod.Headers仍会导致Connection: Keep-Alive发送标头.

总结一下:

  • HttpRequestHeaders.ConnectionClose = true => Connection: close
  • HttpRequestHeaders.ConnectionClose = false => Connection: Keep-Alive
  • HttpRequestHeaders.ConnectionClose = null => Connection: Keep-Alive

  • HttpWebRequest.KeepAlive = true => Connection: Keep-Alive

  • HttpWebRequest.KeepAlive = false => Connection: close

(HttpWebRequest.KeepAlive不可空)