我正在呼叫具有庞大正文(html)的电子邮件营销服务。身体大小= 117184。
我正在使用以Netty为背景的AsyncHttpClient。
当我直接调用该请求时,它是成功的,但是当我尝试使用内部https代理服务器时,它失败并出现以下异常。但是,带有代理服务器的小型设备可以正常工作。以下是scala代码:
val client = asyncHttpClient(config().setProxyServer(proxyServer("XX-XYXY-100X.XXXX.local", 8080)))
val whenResponse = client.preparePost("https://api.sendgrid.com/v3/mail/send")
.addHeader("Authorization", "Bearer XXXXXXXXX")
.addHeader("Content-Type", "application/json")
.setBody(randomBody)
.execute
.get(1000, TimeUnit.SECONDS)
基本上:
对于使用代理服务器的大型请求,我看到以下异常。
Exception in thread "main" java.util.concurrent.ExecutionException: javax.net.ssl.SSLException: handshake timed out
at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1915)
at org.asynchttpclient.netty.NettyResponseFuture.get(NettyResponseFuture.java:207)
at send.RequestSender$.send1(RequestSender.scala:27)
at send.RequestSender$.delayedEndpoint$send$RequestSender$1(RequestSender.scala:47)
at send.RequestSender$delayedInit$body.apply(RequestSender.scala:14)
at scala.Function0.apply$mcV$sp(Function0.scala:34)
at scala.Function0.apply$mcV$sp$(Function0.scala:34)
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
at scala.App.$anonfun$main$1$adapted(App.scala:76)
at scala.collection.immutable.List.foreach(List.scala:389)
at scala.App.main(App.scala:76)
at scala.App.main$(App.scala:74)
at send.RequestSender$.main(RequestSender.scala:14)
at send.RequestSender.main(RequestSender.scala)
Caused by: javax.net.ssl.SSLException: handshake timed out
at io.netty.handler.ssl.SslHandler.handshake(...)(Unknown Source)
最佳答案
我已经报告了这个问题:https://github.com/AsyncHttpClient/async-http-client/issues/1559
他们的开发人员很快就解决了这个问题。
可以通过升级到大于2.5.2的版本来解决此问题。