Jersy Client提供UnkownHostException

时间:2015-08-08 03:56:27

标签: jersey-2.0 jersey-client

我正在编写一个访问REST API http://tåg.info的应用程序。

public class TrainAPI{
    private WebTarget webTarget;

    private static final String URL = "http://tåg.info";

    TrainAPI(){
        webTarget = ClientBuilder.newClient().target(URL);
    }

    public void trainStations(){
        ClientResponse response = webTarget.path("/tag.xml").request(MediaType.APPLICATION_JSON).get(ClientResponse.class);
        System.out.println(response.getStatus());
    }
}

当我调用trainStations()时,会给出以下堆栈:

Exception in thread "main" javax.ws.rs.ProcessingException: java.net.UnknownHostException: t%C3%A5g.info
    at org.glassfish.jersey.client.HttpUrlConnector.apply(HttpUrlConnector.java:244)
    at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:254)
    at org.glassfish.jersey.client.JerseyInvocation$2.call(JerseyInvocation.java:687)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:228)
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:444)
    at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:683)
    at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:411)
    at org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:307)
    at TrainAPI.trainStations(TrainAPI.java:28)
    at Main.main(Main.java:8)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
Caused by: java.net.UnknownHostException: t%C3%A5g.info
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:211)
    at sun.net.www.http.HttpClient.New(HttpClient.java:308)
    at sun.net.www.http.HttpClient.New(HttpClient.java:326)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1168)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1104)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:998)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:932)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1512)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1440)
    at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
    at org.glassfish.jersey.client.HttpUrlConnector._apply(HttpUrlConnector.java:335)
    at org.glassfish.jersey.client.HttpUrlConnector.apply(HttpUrlConnector.java:242)
    ... 16 more

由于tåg.info被写成堆栈中的t%C3%A5g.info,我认为这可能是因为我在网址中使用了å。我怎样才能知道这是否真的是UnkownHostException?如果是的话,怎么能解决这个问题呢?

谢谢! 西蒙

0 个答案:

没有答案