java - 调度失败,代理需要身份验证 : Remotely Closed Connection

标签 java http authentication dispatch asynchttpclient

当我使用调度发出 GET 请求时会发生什么?我可以使用代理,但无法使用需要身份验证的代理。

这有效:

val ps = new ProxyServer(host, port)
val svc = request.setProxyServer(ps)
val resp = Http(svc > as.String)        

这失败了:

val ps = new ProxyServer(host, port)
val svc = request.setProxyServer(ps).as_!(user, pass)
val resp = Http(svc > as.String)

错误是:

java.util.concurrent.ExecutionException: java.io.IOException: Remotely Closed
    at com.ning.http.client.providers.netty.NettyResponseFuture.abort(NettyResponseFuture.java:342)
    at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.abort(NettyAsyncHttpProvider.java:1418)
    at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.channelClosed(NettyAsyncHttpProvider.java:1485)
    at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:88)
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
    at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
    at org.jboss.netty.handler.stream.ChunkedWriteHandler.handleUpstream(ChunkedWriteHandler.java:142)
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
    at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
    at org.jboss.netty.handler.codec.replay.ReplayingDecoder.cleanup(ReplayingDecoder.java:570)
    at org.jboss.netty.handler.codec.frame.FrameDecoder.channelClosed(FrameDecoder.java:371)
    at org.jboss.netty.handler.codec.http.HttpClientCodec$Decoder.channelClosed(HttpClientCodec.java:221)
    at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:88)
    at org.jboss.netty.handler.codec.http.HttpClientCodec.handleUpstream(HttpClientCodec.java:92)
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
    at org.jboss.netty.channel.Channels.fireChannelClosed(Channels.java:468)
    at org.jboss.netty.channel.socket.nio.AbstractNioWorker.close(AbstractNioWorker.java:375)
    at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:93)
    at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108)
    at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318)
    at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)
    at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
    at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
    at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: Remotely Closed

最佳答案

val svc = request.setProxyServer(ps).as_!(user, pass)

正在为请求设置用户和密码,而不是代理

您应该使用用户和密码信息实例化 ProxyServer:

ProxyServer(String host, int port, String principal, String password) 

reference

在您的示例中:

val ps = new ProxyServer(host, port, user, pass)
val svc = request.setProxyServer(ps)
val resp = Http(svc > as.String)

关于java - 调度失败,代理需要身份验证 : Remotely Closed Connection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33484498/

相关文章:

ruby-on-rails - Node.js - 在 HTTP GET 请求查询中发送时将数组转换为对象

http - 高流量网站的长轮询问题

mysql - 如何使用 Mysql 存储过程将导出的文件放置在安全文件传输协议(protocol) (SFTP) 位置

java - 有没有办法在 Quartz Scheduler 中拆分读/写查询以使用 mysql 主从复制?

java - 使用 Guava EventBus 进行条件订阅

java - 迭代器 vs for 循环以及为什么像 for 循环一样引入迭代器?

php - 在 PHP 中使用适当的身份验证安全登录

java - 在 Java 中等于 "finally"的 testNG 注释?

ruby - 如何使用 Ruby gem 通过 HTTP 请求发送二进制数据?

ios - Rejected App : 17. 2:要求用户分享个人信息的应用