簡體   English   中英

從Eclipse調用Rest API時連接超時

[英]Connection timed out when call Rest API from Eclipse

幫我! 我有一個Restful API鏈接,我使用Postman工具調用成功,但是當我在Eclipse上編譯一個Restful客戶端時,它失敗了。 我嘗試關閉代理服務器,但未成功。

public class JersyGetClient {

    public static void main(String[] args) {
        String url = "https://abc.custhelp.com/services/rest/connect/v1.4/accounts";
        String name = "thai.hoangan";
        String password = "123456a@";
        String authString = name + ":" + password;
        String authStringEnc = new BASE64Encoder().encode(authString.getBytes());
        System.out.println("Base64 encoded auth string: " + authStringEnc);
        Client restClient = Client.create();
        WebResource webResource = restClient.resource(url);
        ClientResponse resp = webResource.accept("application/json")
                .header("Authorization", "Basic " + authStringEnc)
                .header("OSvC-CREST-Application-Context", "asd")
                .get(ClientResponse.class);
        if (resp.getStatus() != 200) {
            System.err.println("Unable to connect to the server");
        }
        String output = resp.getEntity(String.class);
        System.out.println("response: " + output);
    }
}

輸出:

線程“主”中的com.sun.jersey.api.client.ClientHandlerException異常:

java.net.ConnectException:連接超時:在com.sun.jersey.api.client.Client.handle(Client.java)處的com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:155)處連接:652)com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)com.sun.jersey.api.client.WebResource.access $ 200(WebResource.java:74)在com.sun JersyGetClient.main(JersyGetClient.java:22)的.jersey.api.client.WebResource $ Builder.get(WebResource.java:509)原因:java.net.ConnectException:連接超時:在java.net.DualStackPlainSocketImpl連接java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)上的.connect0(本機方法)java.net.AbstractPlainSocketImpl.java:350處java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)處的。 )在java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)在java.net.PlainSocketImpl.connect(PlainSocketIm pl.java:172)位於java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)在java.net.Socket.connect(Socket.java:589)在sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java :668)在sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:173)在sun.net.NetworkClient.doConnect(NetworkClient.java:180)在sun.net.www.http.HttpClient.openServer(HttpClient。 java.432)在sun.net.www.http.HttpClient.openServer(HttpClient.java:527)在sun.net.www.protocol.https.HttpsClient。(HttpsClient.java:264)在sun.net.www。 sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)上的協議.https.HttpsClient.New(HttpsClient.java:367),sun.net.www.protocol.http.HttpURLConnection.plainConnect0(網址為sun.net.www.protocol.http.HttpURLConnection.java:1105)網址為sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)的HttpURLConnection.plainConnect(HttpURLConnection.java:999) 在sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1513)在sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)在java.net.HttpURLConnection.getResponseCode (HttpURLConnection.java:480),位於sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338),位於com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:253) com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:153)...還有5個

哦,我解決了,只需添加:

    System.setProperty("https.proxyHost", "proxytest.vcb");
    System.setProperty("https.proxyPort", "8080");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM