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)

不思議なことに、Webブラウザーでこのリンクを呼び出すと、期待されるデータが得られます。どうしてそれができるのでしょうか?ここで何が欠けていますか?そして、どうすればそれを修正できますか?(私は3つすべての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 に答える