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,那麼它就會覆蓋它。這是javadoc關於connect()的說法:「如果此連接尚未建立,則打開通向該URL所引用資源的通信鏈接。」所以請求應該已經發送。任何人都知道是什麼原因造成的問HttpURLConnection連接方法無法連接
注意:如果我將connection.connect()替換爲connection.getResponseHeader(),我會捕獲一個請求。正如我在javadoc中讀到的,如果連接尚未設置,則調用getResponseHeader()將隱式調用connect()方法。
試過嗎? http://stackoverflow.com/a/32897878/584420 –
@JamesJithin代理不是我的問題,因爲正如帖子所說「如果我用connection.getResponseHeader()替換connection.connect(),連接建立並且請求正在抓取」 – JAAAY