2017-05-05 9 views
0

私はCouchDB 2.0.0のバージョンを使用しています。 Javaコードを使用してAPIからデータを取得しようとしています。 ブラウザでヒットしたURLは正常に動作しますが、eclipseではデータが表示されません。例えばため 、次のURLを使用しながら:。APIからのデータ読み込みに関するCouchDBの問題

http://<ip-address>/_node/[email protected]/_stats 

しかし、そうしながら、私は次の例外を取得: java.net.SocketExceptionが:予期しないファイルの末尾サーバーから

at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:802) 
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:663) 
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:799) 
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:663) 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1335) 

答えて

0

少し少し遅れた。私もこの問題に遭遇しました。 Base64を使用してエンコードされたユーザー情報とともに、Javaからの呼び出し時に許可のタイプ(通常はBasic)を指定する必要があるため、サーバーは実際にエラーで応答しました。両方ともリクエストプロパティを追加するため、ブラウザとカールで動作します。

http://<ip-address>/_node/[email protected]/_stats 

を以下のようにあなたの接続が設定されることがあります:あなたが使用していると仮定すると、

HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
connection.setDoOutput(true); 
connection.setDoInput(true); 
connection.setConnectTimeout(2000); // Two seconds (or any timeout you decide) timeout 
// Other user agent can be used. I've also tried curl/7.51.0 as user agent as well 
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2"); 
connection.setRequestProperty("charset", "utf-8"); 
connection.setRequestProperty("Accept-Charset", "utf-8"); 
connection.setRequestProperty("Content-type", "application/json"); 
if (url.getUserInfo() != null && !"".equals(url.getUserInfo())) { 
    // userInfo MUST be Base64 encoded 
    connection.setRequestProperty("Authorization", "Basic " + Base64.encodeBase64String(url.getUserInfo().getBytes())); 
} 
connection.setUseCaches(false); 

は、この情報がお役に立てば幸いです。

関連する問題