我对比特币很陌生,这是我对比特币的第一次实验。
我们一直在尝试使用 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 集成,这导致了同样的错误。
非常感谢解决此错误的任何帮助。先感谢您。如果您需要更多详细信息,请告诉我。
问候, Manjunath
====== 编辑 ======
当我检查请求和响应时,它给出“远程服务器在发送响应标头之前关闭连接”错误作为 HTTP 失败场景的一部分。以下是请求数据内容:
网址:http://192.168.2.111:18333/
请求数据:
{“方法”:“getblockcount”,“参数”:[],“id”:“1”}
请帮助我了解错误在哪里。
================ 编辑=================
在 bitcoin.conf 中添加了以下条目以允许来自客户端的连接。但仍然面临同样的错误:
rpcallowip=192.168.2.111
rpcallowip=127.0.0.1
问候, Manjunath