这里是上下文,这是在我的主机上运行在eclipse上的一个java项目。虚拟盒安装在这个主机上,并运行一个vm,这是一个私有比特币节点。
java appli试图使用以下参数连接到比特币节点:
port=18444 ip=..***.58 rpcuser=bitcoinrpc rpcpassword=MotDePasse blockchain=bitcoin chainname=regtest
如果我尝试从我的主机连接到端口184444上的比特币节点ip的telnet连接,它可以工作。
比特币节点上的netstat命令提供如下内容:
Proto Recv-Q发送-Q本地地址外部地址状态PID/程序名
tcp 0127.0.0.1:18443 0.0.0.0:*听1154/比特科ind
TCP0-0.0.0.0:18444 0.0.0.0:*侦听1154/bitcoind
tcp 0 127.0.0.53:53 0.0.0.0:*听-
tcp 00.0.0.0:22 0.0.0.0:*听-
tcp 0 576 ...:22 ...:38772建立-
tcp6 0 0 ::1:18443:*侦听1154/bitcoind
tcp6 0 0:18444::*侦听1154/bitcoind
tcp6 0 0:22:*听-
控制台中的Java错误:
eb 27,2019 4:58:40 org.apache.http.impl.client.DefaultRequestDirector执行信息:重试请求目标服务器未能响应org.apache.http.NoHttpResponseException:目标服务器未能响应
知道吗??
谢谢
发布于 2019-03-01 12:50:01
关于您在第1和第2篇文章中提供的信息,我将尝试向您提供一些我希望的技术信息,您将能够找到这个疑难解答的问题。
首先使用RPC协议(远程过程调用)
RPC技术视图
该协议提供了一种机制,允许客户端(例如,程序)请求服务器执行由客户端发送的参数提供给它的特定过程。
RPC是一种请求响应协议.
由于您试图进行身份验证,您必须知道:
对于客户端到服务器的身份验证,RPC只定义身份验证本身,而不定义服务的访问控制。每个服务必须实现自己的访问策略。有不同形式的身份验证可以与RPC客户端相关联。
Java远程方法调用(Java )是为RPC协议提供一些有用的方法和实现的API。
检查完整的tuto 这里
最后:
您的问题是,您正在尝试使用Http协议与RPC协议进行通信,该协议不提供相同的实现过程。由于Telnet支持与RPC协议的通信,因此您将得到预期的答案。
为了支持RPC通信,您应该在代码的两边实现一些类。
https://stackoverflow.com/questions/54926302
复制相似问题