相关疑难解决方法(0)

如何使用Tor与Java结合使用

更新了我的问题

我正在用Java构建一个爬虫系统来在线比较价格.但是,我担心我的IP地址可以被禁止.所以我打算使用代理来更改IP动态或使用一些工具自动轮换IP.

许多人说TOR是一种强大的IP轮换工具.但是,我不知道如何使用Tor以及如何将Tor集成到Java Web Application?

我搜索谷歌找到示例,但仍然没有找到任何有用的东西.

任何人都可以帮助我.

java tor autorotate

16
推荐指数
1
解决办法
1万
查看次数

每个请求的Apache HTTP客户端4.3凭据

我一直在查看摘要认证示例:

http://hc.apache.org/httpcomponents-client-4.3.x/examples.html

在我的场景中,有几个线程发出HTTP请求,并且每个线程都必须使用自己的一组凭据进行身份验证.另外,请考虑这个问题可能非常具体针对Apache HTTP客户端4.3以上,4.2可能以不同的方式处理身份验证,尽管我自己没有检查它.也就是说,实际问题就出现了.

我想只使用一个客户端实例(该类的静态成员,即线程安全)并为其提供连接管理器以支持多个并发请求.关键是每个请求都会提供不同的凭据,我没有看到为每个请求分配凭据的方法,因为在构建http客户端时设置了凭据提供程序.从上面的链接:

[...]

    HttpHost targetHost = new HttpHost("localhost", 80, "http");
    CredentialsProvider credsProvider = new BasicCredentialsProvider();
    credsProvider.setCredentials(
            new AuthScope(targetHost.getHostName(), targetHost.getPort()),
            new UsernamePasswordCredentials("username", "password"));
    CloseableHttpClient httpclient = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider).build();
Run Code Online (Sandbox Code Playgroud)

[...]

检查:

http://hc.apache.org/httpcomponents-client-ga/tutorial/html/authentication.html#d5e600

第4.4点(寻求4.4.HTTP认证和执行上下文)中的代码示例似乎表示HttpClientContext被赋予auth高速缓存和凭证提供者,然后被传递给HTTP请求.在它旁边执行请求,似乎客户端将在HTTP请求中获得主机的凭据过滤.换句话说:如果上下文(或缓存)具有当前HTTP请求的目标主机的有效凭据,则他将使用它们.对我来说问题是不同的线程将对同一主机执行不同的请求.

有没有办法为每个HTTP请求提供自定义凭据?

在此先感谢您的时间!:)

http credentials digest apache-httpcomponents apache-httpclient-4.x

11
推荐指数
1
解决办法
2万
查看次数