Google api의 https url에 접속하려고했습니다. 아래의 코드를 사용하면 오류가 발생합니다. 하지만 난 하나의 구글 API를 HTTP URL을 타격 할 수 있고 그것의 오류프록시를 통해 터널링 할 수 없습니다. 프록시가 "HTTP/1.1 407 프록시 인증 필요"를 반환합니다.
DataInputStream di = null;
FileOutputStream fo = null;
byte[] b = new byte[1];
// PROXY
System.setProperty("https.proxyHost", "my proxy");
System.setProperty("https.proxyPort", "8080");
Authenticator.setDefault(new PasswordAuthenticator());
URL u = new URL("https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Vict&types=geocode&language=fr&sensor=true&key=keyforuse");
HttpURLConnection con = (HttpURLConnection) u.openConnection();
sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder();
String encodedUserPwd = encoder.encode("domain\\user:password"
.getBytes());
con.setRequestProperty("Proxy-Authorization", "Basic "
+ encodedUserPwd);
di = new DataInputStream(con.getInputStream());
// result = parseJSON(di);
while (-1 != di.read(b, 0, 1)) {
System.out.print(new String(b));
}
없이 아주 잘 작동하지만
java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 Proxy Authorization Required"
at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1648)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:164)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1172)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:234)
at kf.store.locator.googlemaps.test.main(test.java:58)
도움 아래에 오류가 ????
저는 도메인과 sun.misc.BASE64Encoder 인코더 아래 코드를 사용해 새로운 sun.misc.BASE64Encoder =()을 제거한; \t \t \t 문자열 encodedUserPwd = encoder.encode ("386654 : 2013 @ Jun1" \t \t \t \t \t .getBytes()); \t \t \t con.setRequestProperty ("프록시 인증", "기본" \t \t \t \t \t + encodedUserPwd); 여전히 오류 발생 프록시를 통해 터널링 할 수 없습니다. 프록시는 "HTTP/1.1 400 잘못된 요청"을 반환합니다. 암호화 된 자격 증명을 추가하는 대신 – rand
이 도움이 될 것입니다. 프록시 호스트에 추가하려고 했습니까? System.setProperty ("https.proxyHost", "user : pass @ proxyHost") 도움이되는지 아닌지는 잘 모르겠지만 한 번 해보는 것이 좋습니다. 전에는 그걸 잊어 버렸어. 그것 이외에, 당신의 코드는 나에게 잘 어울립니다. – Callan