如何在Java中的单个HttpURLConnection上选择性地禁用keep-alive?

如何在Java中的单个HttpURLConnection上选择性地禁用keep-alive?,java,httpurlconnection,keep-alive,Java,Httpurlconnection,Keep Alive,我所面临的场景是,我们使用一个库,它使用HttpURLConnection来执行对同一主机的多个请求。 对于其中的一些请求(非全部!),我需要禁用keep alive,以便在发送请求后不会重用连接。 我的第一个赌注是配置以发送以下标题: Connection: close 但是,此标头不会更改HttpURLConnection的行为。相反,这会造成问题,因为: 服务器读取头并认为客户端将关闭连接 客户端(HttpURLConnection)不会解释它,因此会重新使用连接(与它向服务器声明的相

我所面临的场景是,我们使用一个库,它使用HttpURLConnection来执行对同一主机的多个请求。 对于其中的一些请求(非全部!),我需要禁用keep alive,以便在发送请求后不会重用连接。 我的第一个赌注是配置以发送以下标题:

Connection: close
但是,此标头不会更改HttpURLConnection的行为。相反,这会造成问题,因为:

  • 服务器读取头并认为客户端将关闭连接
  • 客户端(HttpURLConnection)不会解释它,因此会重新使用连接(与它向服务器声明的相反!)
根据官方文件: 有一个系统属性“http.keepAlive”,但它是全局的,不符合我的要求。 同样根据上面的说明,我们不能简单地读取响应体,从而导致连接被废弃,但是我们需要读取响应,而且这种方式是不可行的

在将JVM HttpURLConnection用于单个请求响应后,是否可以使用任何头/属性/任何东西来强制其关闭连接