NutzCN Logo
问答 如何动态设置http代理
发布于 2695天前 作者 qq_995a6c84 3154 次浏览 复制 上一个帖子 下一个帖子
标签: http

目前好像是只能全局设置http代理的吧?如果有的http请求要设置代理,有的http请求不设置代理,这个怎么办?

12 回复
// 先声明个默认代理
final Proxy proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress(host, port));
Http.setProxySwitcher(new ProxySwitcher() {
            public Proxy getProxy(URL url) {
                 // if url符合xxx条件, 就不走代理, return null;
                // else 走代理 return proxy;
            }

            public Proxy getProxy(Request req) {
                // if req 符合XXX条件,就走代理 return proxy;
                // else return null;
            }
        };);

如果是个爬虫程序呢,不同的url需要使用不同的代理ip,这个咋办?

getProxy方法,你可以返回任何Proxy实例咯, 发挥一下想象力

如果再使用 set proxy 是否就会盖了setProxySwitcher 代码?

我想set 不要代理如何作?
'''
new InetSocketAddress(??, ???)
'''

@wendal

// 先声明个默认代理
final Proxy proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress(host, port));
Http.setProxySwitcher(new ProxySwitcher() {
            public Proxy getProxy(URL url) {
                 // if url符合xxx条件, 就不走代理, return null;
                // else 走代理 return proxy;
            }

            public Proxy getProxy(Request req) {
                // if req 符合XXX条件,就走代理 return proxy;
                // else return null;
            }
        };);

这段代码是加在哪里的呢,我放在
image.png
没有用

debug一下org.nutz.http.Sender.openConnection()

@wendal
image.png
找到了,但是怎么设置动态代理呢

随时都可以Http.setProxy呀,设置完之后的请求就按新配置,也proxy就个对象

添加回复
请先登陆
回到顶部