curl returns empty output when json-rpc

1

I am not able to get JSON-RPC response via curl. It seems like is not accepting requests.

My bitcoin.conf

rpcuser=USER
rpcpassword=PASS
server=1
rpcport=9332

Running daemon

$ bitcoind -conf=~/.bitcoin/bitcoin.conf -daemon
Bitcoin server starting

Checking cli

$ bitcoin-cli -conf=~/.bitcoin/bitcoin.conf getinfo
{
  "version": 140200,
  "protocolversion": 70015,
  "walletversion": 130000,
  "balance": 0.00000000,
  "blocks": 439348,
  "timeoffset": 0,
  "connections": 8,
  "proxy": "",
  "difficulty": 254620187304.0614,
  "testnet": false,
  "keypoololdest": 1500029964,
  "keypoolsize": 100,
  "paytxfee": 0.00000000,
  "relayfee": 0.00001000,
  "errors": ""
}

Testing curl

$ curl http://localhost:3333
curl: (7) Failed to connect to localhost port 3333: Connection refused

Of course, the port is wrong:

$ curl http://localhost:9332
JSONRPC server handles only POST requests

Making a post

$ curl http://localhost:8332 -H 'content-type:text/plain;' --data-binary ''

The output is always empty, doesn't matter if I add data or user,password. Is always empty:

$ curl http://localhost:9332 -H 'content-type:text/plain;' --data-binary ''
$ curl http://localhost:9332 -H 'content-type:text/plain;' --data-binary ''
$ curl http://USER:PASS@localhost:9332 -H 'content-type:text/plain;' --data-binary ''
$ curl http://USER:PASS@localhost:9332 -H 'content-type:text/plain;' --data-binary '{"jsonrpc":"1.0","id":"curltext","method":"getinfo","params":[]}'
$ curl --user USER:PASS http://localhost:9332 -H 'content-type:text/plain;' --data-binary '{"jsonrpc":"1.0","id":"curltext","method":"getinfo","params":[]}'

Any ideas why is this happening? Don't know what else to try.

EnZo

Posted 2017-07-14T17:03:51.453

Reputation: 159

1Can you add the verbose option and tell us what is says?
-v / --verbose
m1xolyd1an 2017-07-15T04:41:39.030

Answers

1

If you're on Amazon AWS try this:

setsebool -P httpd_can_network_connect 1

I had the same problem and it took me hours to figure out that the server was blocking connections. I thought it wasn't the problem because my AWS security group allowed it. But apparently the server was blocking it directly.

Marc Alexander

Posted 2017-07-14T17:03:51.453

Reputation: 531

0

For anyone trying to connect locally to a wallet:

I managed to get mine working locally by changing rpcallowip and rpcconnect from 127.0.0.1 to my actual local I.P. address (e.g. 192.168.0.2), seems that by using default localhost or 127.0.0.1 does not always work.

Carlos F

Posted 2017-07-14T17:03:51.453

Reputation: 101

-2

add this to bitcoin.conf

rpcallowip=0.0.0.0/0

allow all ip

ironman

Posted 2017-07-14T17:03:51.453

Reputation: 1

3This is incredibly insecure. You should only allow the IPs you will be connecting from.Raghav Sood 2018-05-18T07:35:33.630