Как сделать HTTP-запрос через прокси-сервер Socks5 с аутентификацией с помощью Android okhttp3?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как сделать HTTP-запрос через прокси-сервер Socks5 с аутентификацией с помощью Android okhttp3?

Сообщение Anonymous »


Вот мой код, но я всегда получаю исключение java.net.SocketException: SOCKS: аутентификация не удалась. Действительно, я проверил учетные данные с помощью клиента Socks5, и они в порядке. Что-то меня смущает, что есть только одно возможное значение Proxy.Type.SOCKS, которое не имеет никакого значения между SOCKS4 и SOCKS5, так что действительно ли okhttp поддерживает прокси SOCKS5?
String proxyHost="заменить хостом"; int proxyPort=заменить портом прокси; String username="заменить именем пользователя"; String пароль="заменить паролем"; Строка url="https://api64.ipify.org?format=json"; Proxy proxyTest = новый прокси(Proxy.Type.SOCKS,new InetSocketAddress(proxyHost, proxyPort)); okhttp3.Authenticator proxyAuthenticator = новый okhttp3.Authenticator() { @Nullable @Override публичный запрос аутентификации(маршрут @Nullable Route, ответ @NonNull Response) выдает IOException { Строковые учетные данные = Credentials.basic(имя пользователя, пароль); вернуть ответ.запрос().newBuilder() .header("Прокси-авторизация", учетные данные) .строить(); } }; Клиент OkHttpClient = новый OkHttpClient.Builder() .connectTimeout(60,TimeUnit.SECONDS) .writeTimeout(60, TimeUnit.SECONDS) .readTimeout(60, TimeUnit.SECONDS) .proxy(proxyTest).proxyAuthenticator(proxyAuthenticator).build(); Запрос запроса = новый Request.Builder() .url(URL) .строить(); Ответ ответа = client.newCall(request).execute();
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»