SocketAddress proxy = new InetSocketAddress("127.0.0.1", 8080);
URL url = new URL("http://192.168.1.1/");
HttpURLConnection connection = (HttpURLConnection) url.openConnection(new Proxy(Proxy.Type.HTTP, proxy));
connection.setDoOutput(true);
String body = "This is a body example";
OutputStreamWriter writer = new OutputStreamWriter(new BufferedOutputStream(connection.getOutputStream()), "8859_1");
writer.write(body);
writer.flush();
writer.close();
connection.connect();
문제는이 코드를 실행할 때 어떤 요청도 내 프록시에서 잘 잡히지 않습니다 (잘 구성되어 있음). 나는 connect()가 URLConnection의 추상 메소드라는 것을 알고 있지만, HttpURLConnection이 URLConnection을 확장하고 있다는 점을 감안할 때, URLConnection을 오버라이드한다고 가정합니다. 이것은 javadoc이 connect()에 대해 말하는 것입니다 : "아직 연결되지 않았다면이 URL이 참조하는 리소스에 대한 통신 링크를 엽니 다." 그래서 요청이 전송되어 있어야합니다. 문제의 원인을 아는 사람이 있습니까?HttpURLConnection 연결 방법이 연결되지 않습니다.
참고 : connection.connect()를 connection.getResponseHeader()로 바꾸면 요청을 받았습니다. 연결이 아직 설정되지 않은 경우 javadoc에서 읽었으므로 getResponseHeader()를 호출하면 connect() 메서드가 암시 적으로 호출됩니다.
시도해 보셨습니까? http://stackoverflow.com/a/32897878/584420 –
@JamesJithin 프록시는 내 문제가 아닙니다. 게시물에 "connection.connect()를 connection.getResponseHeader()로 바꾸면 연결이 설정되고 요청이" 감사합니다. – JAAAY