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();
問題は、私は私の代理で何の要求が「catchedない」され、このコードを実行すると(それがうまく設定されている)ということでの接続に失敗しました。私はconnect()がURLConnectionの抽象メソッドであることを知っていますが、HttpURLConnectionがURLConnectionを拡張しているので、それをオーバーライドすることになっています。これはjavadocがconnect()について言うことです: "このような接続がまだ確立されていなければ、このURLによって参照されるリソースへの通信リンクを開きます。"したがって、リクエストが送信されているはずです。問題の原因は誰でも知っていますか?HttpURLConnectionの接続方法は
注:connection.connect()をconnection.getResponseHeader()に置き換えた場合、私は要求を受け取ります。接続がまだ設定されていない場合はjavadocで読み込んだので、getResponseHeader()の呼び出しは暗黙的にconnect()メソッドを呼び出します。
試してみましたか? http://stackoverflow.com/a/32897878/584420 –
@JamesJithin Proxyは私の問題ではありません。なぜなら、「connection.connect()をconnection.getResponseHeader()に置き換えると、接続が確立され、 – JAAAY