java - 在java中调用http get请求

标签 java

我想要使用以下 java 代码的 http get 请求请求。 但是,不确定我是否收到以下异常。

    import java.net.*;
import java.io.*;

public class API {
    public static void main(String[] args) throws Exception {
        URL oracle = new URL("http://www.oracle.com/");
        URLConnection yc = oracle.openConnection();
        BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
        String inputLine;
        while ((inputLine = in.readLine()) != null) 
            System.out.println(inputLine);
        in.close();
    }
}

错误或异常如下:

Exception in thread "main" java.net.ConnectException: Connection timed out: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:337)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
    at java.net.Socket.connect(Socket.java:579)
    at java.net.Socket.connect(Socket.java:528)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:388)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:483)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:213)
    at sun.net.www.http.HttpClient.New(HttpClient.java:300)
    at sun.net.www.http.HttpClient.New(HttpClient.java:316)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:992)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:928)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:846)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1296)
    at API.main(API.java:8)

最佳答案

我猜你有防火墙,它阻止了这个 HTTP get 请求。

您的代码应该可以按预期工作。 Java 运行时之外的某些东西正在阻止连接。

关于java - 在java中调用http get请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18956569/

相关文章:

java - 是否可以编写和加载您自己的核心 Java 类版本?

java - 我可以在 Spring Boot 中为函数添加 "get"前缀吗

java - 使用代理将第 3 方类扩展为 Hadoop Writable

尽管 (Max)MetaspaceSize,Java 8 仍为 Metaspace 保留至少 1G

java - 如何从 Java(通过命令行)执行 Python 脚本?

java.lang.NoClassDefFoundError : org/springframework/core/io/Resource Exception

java - 在适用于 Android 的 Java 中 move 对象/位图

java - Apache Spark GitHub 代码和 Maven 依赖项

java - Spring-boot - 如何加载资源/数据源?

java - 如何在 java 8 函数式 API 中将 Map<String, List<String>> 转换为 Map<String, String>