Java: Tor HTTP-запрос с использованием Silvertunnel Netlib
Я пытаюсь сделать анонимный HTTP-запрос из Java-приложения по сети Tor, используя Silvertunnel Netlib ( https://silvertunnel.org/doc/netlib.html). Я использую пример кода, который работает при выполнении запроса через TCPIP, но при использовании параметра TOR он заканчивается следующим исключением (примерно через 10 минут после попытки подключения):
java.io.IOException: Tor.connect: unable to connect to null:80 after 11 full retries with 5 sub retries
at org.silvertunnel.netlib.layer.tor.clientimpl.Tor.connect(Tor.java:281)
at org.silvertunnel.netlib.layer.tor.TorNetLayer.createNetSocket(TorNetLayer.java:113)
at org.silvertunnel.netlib.util.HttpUtil.get(HttpUtil.java:121)
at FlightBot.main(FlightBot.java:48)
Вот код, который я использую:
NetLayer lowerNetLayer = NetFactory.getInstance().getNetLayerById(NetLayerIDs.TOR);
// wait until TOR is ready (optional) - this is only relevant for anonymous communication:
lowerNetLayer.waitUntilReady();
// prepare parameters (http default port: 80)
TcpipNetAddress httpServerNetAddress = new TcpipNetAddress("httptest.silvertunnel.org", 80);
String pathOnHttpServer = "/httptest/bigtest.jsp?id=example";
long timeoutInMs = 5000;
// do the HTTP request and wait for the response
byte[] responseBody = HttpUtil.getInstance().get(lowerNetLayer, httpServerNetAddress, pathOnHttpServer, timeoutInMs);
// print out the response
System.out.println(new String(responseBody));
Я что-то не так делаю или сеть Tor сейчас просто недоступна?
Чтобы было понятно, это работает при использовании:
NetLayer lowerNetLayer = NetFactory.getInstance().getNetLayerById(NetLayerIDs.TCPIP)
на первой линии.
1 ответ
Проблема заключается в реализации Tor. Сеть Tor развивалась, и не все изменения были внедрены в Silvertunnel Netlib. Проект Silvertunnel был остановлен по личным причинам. Я создал новую версию: SilverTunnel-NG, которая является форком исходного проекта.
Теперь соединения с сетью Tor снова работают.
Надеюсь, вам еще не поздно:)