10
votes

Comment utiliser des chaussettes en Java?

J'utilise 100% de chaussettes de travail et je ne peux pas me connecter via ma candidature. xxx xxx

Alors qu'est-ce que je fais mal? Si je vais utiliser HTTP avec un proxy HTTP, tout fonctionne mais pas avec des chaussettes.


3 commentaires

Quel message d'erreur obtenez-vous? Comment Est-ce que ce code ne fonctionne-t-il pas? Aussi, utilisez-vous un proxy SOCKS4 ou SOCKS5


J'ai essayé d'utiliser les deux chaussettes4 et Socks5. Ceci est le message d'erreur: Pastebin.com/xfb2qzqs mais! Chaussettes est 100% Woking (Socks5 ici est).


Où je peux obtenir Socks5 Bibliothèque pour Android ?? Je veux l'utiliser aussi ..


4 Réponses :


24
votes

C'est vraiment facile. Il vous suffit de définir les propriétés du système correspondantes et d'obtenir simplement avec votre HTTPConnection régulière.

System.getProperties().put( "proxySet", "true" );
System.getProperties().put( "socksProxyHost", "127.0.0.1" );
System.getProperties().put( "socksProxyPort", "1234" );


2 commentaires

Celles-ci sont correctes mais que faire au cas où j'ai besoin d'utiliser plusieurs threads et que je dois avoir de nombreux proxies par temps? Par exemple, j'ai trouvé des chaussettes proxy qui fonctionne correctement dans IE comme chaussettes (et ne wotk pas comme http et d'autres protocoles), mais quand je l'utilise à Java, cela ne fonctionne pas pour V4 et pour 5! Cela semble être un câlin sucer en Java


Il vaut la peine de mentionner que Java ignorera les paramètres Socks5 à moins que le proxyset soit défini. Ceci n'est pas nécessaire pour utiliser un proxy HTTP.



2
votes

http://grepcode.com/file_/repository.grepcode.com/java/root/jdk/openjdk/8U40-B25/sun/net/www/http/httpclient.java/ ? v = source

en profondeur, httpclient est utilisé dans httpurlconnection. xxx

sur la ligne 476, vous pouvez voir que le seul proxy acceptable est un http Procuration. Il fait une connexion directe autrement.

Beirdly Il n'y a pas de support pour les chaussettes proxy utilisant httpurlconnection. Pire encore, le code n'utilise même pas un proxy non pris en charge et ignore simplement le proxy!

Pourquoi il n'y a pas de soutien aux mandataires de chaussettes après au moins 10 ans d'existence de cette classe ne peut pas être expliqué .


0 commentaires

6
votes

Informez les arguments "SocksProxyHost" et "SocksProxyPort" virguments.

E.g. P>

java -DsocksProxyHost=127.0.0.1 -DsocksProxyPort=8080 org.example.Main


0 commentaires

1
votes

ou cette réponse: https://stackoverflow.com/a/64649010/5352325

Si vous savez Quelles URIS a besoin d'aller à proxy, vous pouvez également utiliser le proxyssier à faible couches: https://docs.oracle.com/javase/7/docs/technotes/guides/net/proxies.html Où pour chaque connexion de socket faite, vous pouvez décider des proxy pour être utilisé. p>

Il ressemble à quelque chose comme ceci: p> xxx pré>

alors vous utilisez votre sélecteur: p>

public static void main(String[] args) {
        MyProxySelector ps = new MyProxySelector(ProxySelector.getDefault());
        ProxySelector.setDefault(ps);
        // rest of the application
}


0 commentaires