我正在使用java.net API來請求softlayer API。Softlayer API錯誤「java.net.SocketException:連接重置」
String url = "https://api.softlayer.com/rest/v3.1/SoftLayer_Account/getInvoices.json";
String query = "objectFilter={\"invoices\":{\"createDate\":{\"operation\":\"betweenDate\",\"options\":[{\"name\":\"startDate\",\"value\":[\"04/01/2017 17:50:40\"]},{\"name\":\"endDate\",\"value\":[\"06/01/2017 17:50:40\"]}]}}}";
HttpsURLConnection conn = (HttpsURLConnection) new URL(url + "?" + query).openConnection();
我得到這個錯誤
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:196)
at java.net.SocketInputStream.read(SocketInputStream.java:122)
at sun.security.ssl.InputRecord.readFully(InputRecord.java:442)
at sun.security.ssl.InputRecord.read(InputRecord.java:480)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:934)
at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:891)
at sun.security.ssl.AppInputStream.read(AppInputStream.java:102)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:275)
at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:690)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:633)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:661)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1324)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
我怎樣才能解決這個問題?
謝謝你的回答有沒有更多的錯誤但是結果是錯誤的ObjectFilter的不負責由SOFTLAYER服務器取,我讓所有的發票! – Ioa
我更新了我的答案和示例,調查後發現問題是網址編碼。 –