Java HttpURLConnection连接方法无法连接
问题是,当我运行这段代码时,我的代理不会“捕获”任何请求(配置良好)。我知道connect()是URLConnection中的一个抽象方法,但鉴于HttpURLConnection正在扩展URLConnection,因此应该重写它。这就是javadoc关于connect()的说法:“如果尚未建立连接,则打开指向此URL引用的资源的通信链接。”因此请求应该已发送。有人知道问题的原因吗 注意:如果我用connection.getResponseHeader()替换connection.connect(),我会捕获一个请求。正如我在javadoc中所读到的,如果连接尚未设置,则对getResponseHeader()的调用将隐式调用connect()方法 这是javadoc关于connect()的说法:“如果尚未建立连接,则打开指向此URL引用的资源的通信链接。” 对 所以请求应该已经发送了 非顺序逻辑。你的报价中没有关于发送请求的内容Java HttpURLConnection连接方法无法连接,java,http,httpurlconnection,urlconnection,Java,Http,Httpurlconnection,Urlconnection,问题是,当我运行这段代码时,我的代理不会“捕获”任何请求(配置良好)。我知道connect()是URLConnection中的一个抽象方法,但鉴于HttpURLConnection正在扩展URLConnection,因此应该重写它。这就是javadoc关于connect()的说法:“如果尚未建立连接,则打开指向此URL引用的资源的通信链接。”因此请求应该已发送。有人知道问题的原因吗 注意:如果我用connection.getResponseHeader()替换connection.connect
正如您所观察到的,在您执行某些输入步骤之前,请求会一直处于缓冲状态。是否尝试过此操作@JamesJithin代理不是我的问题,因为正如帖子所说的“如果我用connection.getResponseHeader()替换connection.connect(),连接就会建立,请求就会被捕获”,谢谢。我刚刚发现有一个TCP握手可以建立。实际上我认为这是不必要的,因为TCP连接可能在服务器端超时。无论如何,谢谢你。
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();