私はビットコインに非常に慣れておらず、これがビットコインの最初の実験です。
bitcoind (testnet を使用) を使用して、BTC で Java ベースのアプリケーションを開発しようとしています。以下に示すような基本認証でJerseyクライアントを使用して、単純なHTTP Postを使用しています。プロジェクトの依存関係の一部として、すでに jersey クライアントがあります。私たちはMac OSで実行しています。bitcoind と Java クライアントは同じシステムでホストされています。
Client client = Client.create();
String url = "http://"+username+':'+password+"@localhost:18333";
//String url = "http://localhost:18333";
System.out.println("URL is : "+url);
WebResource webResource = client.resource(url);
Authenticator.setDefault(new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication (username, password.toCharArray());
}
});
String input = "{\"method\":\"getblockcount\",\"params\":[],\"id\":\"1\"}";
ClientResponse response = webResource.type("application/json").post(ClientResponse.class, input);
これを実行すると、次のようになります
Caused by: java.net.SocketException: Unexpected end of file from server
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:772)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:633)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:769)
私が理解している例外から、サーバー側のエラーがいくつかありますが、ログファイルにエラーが表示されません。degug.log には詳細が記載されていません。
bitcoin.conf ファイルのエントリは次のとおりです。
rpcuser=bitcoinrpc
rpcpassword=5UKQTzWTf7EEJnkShZhr9tbjpDVNmLMgQkFfWsnZhLey
testnet=1
server=1
また、json-rpc クライアントを使用して bitcoind と統合しようとしたところ、同じエラーが発生しました。
このエラーを解決するための助けを本当に感謝します. 前もって感謝します。さらに詳細が必要な場合はお知らせください。
よろしく、 マンジュナート
======編集======
リクエストとレスポンスを調べると、HTTP 障害シナリオの一部として「リモート サーバーがレスポンス ヘッダーを送信する前に接続を閉じました」というエラーが表示されます。リクエスト データの内容は次のとおりです。
URL :http://192.168.2.111:18333/
リクエストデータ:
{ "メソッド": "getblockcount", "params": [], "id": "1" }
間違いがどこにあるかを理解するのを手伝ってください。
================編集=================
クライアントからの接続を許可するために、以下のエントリを bitcoin.conf に追加しました。しかし、まだ同じエラーに直面しています:
rpcallowip=192.168.2.111
rpcallowip=127.0.0.1
よろしく、 マンジュナート