0

我几乎从这里复制了以下代码。我在第 10 行得到一个 java.net.SocketException 说“连接重置”。

import java.net.*;
import java.io.*;
import org.apache.commons.io.*;

public class HelloWorld {
    public static void main(String[] x) {
        try {
            URL url = new URL("http://money.cnn.com/2013/06/07/technology/security/page-zuckerberg-spying/index.html");
            URLConnection con = url.openConnection();
            InputStream in = con.getInputStream();
            String encoding = con.getContentEncoding();
            encoding = encoding == null ? "UTF-8" : encoding;
            String body = IOUtils.toString(in, encoding);
            System.out.print(body);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

我担心这实际上可能不是实际代码的问题,而是我需要授予 Java 一些权限。我的代码有问题还是环境问题?

4

1 回答 1

0

我使用您的代码进行了少量修改,因为我手头没有 IOUtils。它可以正常工作。无需设置代理。我也没有特权,因为我是由普通用户运行的。

    try {
        URL url = new URL("http://money.cnn.com/2013/06/07/technology/security/page-zuckerberg-spying/index.html");
        URLConnection con = url.openConnection();
        InputStream in = con.getInputStream();
        BufferedReader br = new BufferedReader(new InputStreamReader(in));
        StringBuilder sb = new StringBuilder();
        String line = br.readLine();
        while (line != null) {
            sb.append(line);
            line = br.readLine();
        }
        System.out.print(sb.toString());
    } catch (Exception e) {
        e.printStackTrace();
    }
于 2013-06-11T15:47:16.550 回答