Java - Erro en conexión a url de internet mediante un proxy con autenticarión de usuario

 
Vista:
sin imagen de perfil

Erro en conexión a url de internet mediante un proxy con autenticarión de usuario

Publicado por Juan (1 intervención) el 16/01/2021 05:56:46
Saludos a todos

Favor su ayuda tengo un inconveniente con un aplicativo java que se usa para realizar una conexión a una URL de internet.

Los servidores donde se encuentra el aplicativo son Linux los cuales salen a internet mediante un proxy que se encuentra configurado en la variable http_proxy de la siguiente manera

http://usuario:[email protected]:8080

He logrado hacer que se conecte a la url pero desde una maquina que sale directo a internet pero al intentar aplicar el proxy presento inconvenientes y le he dado muchas vueltas y no encuentro que estoy haciendo mal o como debo hacerlo.

Adicional se ha logrado obtener el valor del http_proxy con la linea system.getenv("https_proxy"); pero aun no se conecta.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package prueba;
 
import javax.net.ssl.HttpsURLConnection;
 
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.Proxy.Type;
import java.net.URL;
import java.util.Base64;
 
public class ConexionURL {
 
	public void verificarTokenRecaptcha(String urlVerificacion, String claveRecaptcha,
			String tokenRecaptcha) throws IOException {
 
		DataOutputStream wr=null;
		BufferedReader in=null;
		HttpsURLConnection con=null;
 
 
		String proxyHost="proxyempresa.com";
		int proxyPort=8080;
 
		System.setProperty("http.proxyHost", proxyHost);
		System.setProperty("http.proxyPort", "8080");
 
		String encoded = new String
		      (Base64.getEncoder().encode(new String("usuario:clave").getBytes()));
 
 
		try {
 
			//Proxy proxy=new Proxy(Type.HTTP, new InetSocketAddress(proxyHost, proxyPort));//Se intento usar tambien con esta linea pero el proxy usa autenticación con usuario
			URL obj = new URL(urlVerificacion);
			//con = (HttpsURLConnection) obj.openConnection(proxy);
			con = (HttpsURLConnection) obj.openConnection();
			con.setRequestProperty("Proxy-Authorization", "Basic " + encoded);
			con.connect();
 
			con.setRequestMethod("POST");
			String postParams = "secret=" + claveRecaptcha + "&response=" + tokenRecaptcha;
			con.setDoOutput(true);
			wr = new DataOutputStream(con.getOutputStream());
			wr.writeBytes(postParams);
 
			int responseCode = con.getResponseCode();
			in = new BufferedReader(new InputStreamReader(con.getInputStream()));
			String inputLine;
			StringBuffer response = new StringBuffer();
			while ((inputLine = in.readLine()) != null) {
				response.append(inputLine);
			}
			String jsonObject = response.toString();
			System.out.println("responseCode: " + responseCode);
			System.out.println("recaptchaSalida IsSuccess: " + jsonObject);
 
		} catch (Exception ex) {
			System.out.println("Error: "+ex.toString());
		} finally{
 
			if(wr!=null){
				wr.close();
			}
			if(in!=null){
				in.close();
			}
			if(con!=null){
				con.disconnect();
			}
		}
	}
}

De antemano les agradezco sus aportes y ayudas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder