Я запустил ваш код, используя фиктивный прокси-сервер httpServer, который всегда возвращает строковую константу. Разница лишь в том, что я использовал другую стратегию перенаправления. Кажется, все в порядке.
class SimpleHttpServer extends Thread {
private val threadPoolExecutor: ExecutorService = Executors.newFixedThreadPool(10)
private val server = HttpServer.create(new InetSocketAddress("localhost", 8001), 0);
server.createContext("/", new DefaultHandler());
server.setExecutor(threadPoolExecutor);
override def run(): Unit = {
server.start()
}
}
class DefaultHandler extends HttpHandler {
override def handle(httpExchange: HttpExchange): Unit = {
httpExchange.sendResponseHeaders(200, 5)
httpExchange.getResponseBody.write("hello".getBytes())
httpExchange.getResponseBody.flush()
httpExchange.getResponseBody.close()
}
}
object SimpleHttpServer extends InputReader {
def main(args: Array[String]): Unit = {
val server = new SimpleHttpServer
server.start()
val proxyHost = new HttpHost("localhost", 8001, "http")
val httpClient = HttpClients.custom
.useSystemProperties()
.setConnectionManager(new PoolingHttpClientConnectionManager)
.setRedirectStrategy(LaxRedirectStrategy.INSTANCE)
.setProxy(proxyHost)
.build()
val httpContext = new BasicHttpContext
val httpGet = new HttpGet("http://www.google.com")
val response = httpClient.execute(httpGet, httpContext)
println(readRecur(response.getEntity.getContent))
}
}