0

我正在尝试通过 java 从 openweathermap.org 获取一些数据,但是当我运行代码时,我得到了 ConnectionException。

我的代码是:

public static void openweathermapTest1() {
    String uri = "http://openweathermap.org/data/2.1/find/station?lat=55&lon=37&cnt=10";
    ClientConfig config = new DefaultClientConfig();
    Client client = Client.create(config);
    WebResource service = client.resource(uri);
    String xml = service.accept(MediaType.TEXT_XML).get(String.class);
    System.out.println("Output as XML: " + xml);
}

和例外:

Exception in thread "main"
com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connect
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:151)
at com.sun.jersey.api.client.Client.handle(Client.java:648)     
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:680)   
at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
at com.sun.jersey.api.client.WebResource$Builder.get(WebResource.java:507)
at GetPoint.openweathermapTest1(GetPoint.java:110)
at GetPoint.main(GetPoint.java:142)

奇怪的是,当我在我的网络浏览器中调用这个链接时,我得到了预期的数据。怎么可能?我在这里想念什么?我该如何解决?(我尝试了所有三个 uri 并且都在 Firefox 中工作,而不是在我的程序中)

4

2 回答 2

1

答案很简单:我的工作计算机在代理后面,只有 Firefox 使用它。通过一点代理魔法,我终于能够得到预期的结果。

感谢 Tom 和 Jim Garrison 的有用评论!

编辑:我使用以下代码来使用代理:

private static void useProxy(String host, int port)
{
    System.setProperty("http.proxySet", "true");
    System.setProperty("http.proxyHost", host);
    System.setProperty("http.proxyPort", String.valueOf(port));
}
于 2012-10-26T07:27:41.620 回答
-1

我面临着同样的问题。当我重新检查我的 JAVA 安装时,我的问题得到了修复。我有JDK 6和7 ..这种混乱..所以我完全删除了jdk 7并指向jdk 6。所以命令行版本,eclipse和服务器都应该指向同一个jdk ..这解决了错误。

于 2013-02-20T06:58:22.707 回答