2016-01-25 77 views
1

伙计我想我可能会错过一件简单的事情,但我不知道在哪里寻找它。从HTTP请求中获取JSON对象

所以我试图实现block.io API接受比特币支付建立在PHP上的网站。现在Docs说所有通知事件都会使用通过POST请求推送到我的服务器的JSON对象。所以我决定做一次BTC付款测试,并将指定网址上的所有请求记录到我的数据库中。在这里,我对倾销getallheaders()

{ 
["Content-Type"]=> 
string(16) "application/json" 
["User-Agent"]=> 
string(12) "Block.io/0.1" 
["Accept"]=> 
string(10) "text/plain" 
["Authorization"]=> 
string(10) "Basic Og==" 
["Connection"]=> 
string(5) "close" 
["Host"]=> 
string(17) "site.com" 
["Content-Length"]=> 
string(3) "462" } 

不过倾销$_POST根给我一个空数组。倾销$_SERVER$_GET也没有任何用处。 所以我的问题是如何找到在Content-Type中声明的JSON字符串?

任何建议都会有所帮助! 谢谢!

+0

您使用的卷曲优秀的解释? – RamRaider

+0

不,我不认为我应该这样做,因为他们会在BTC交易完成 – peyeruni

+0

上推送通知给我,好吧 - 我现在看到文档正在发生什么 - 对于混淆感到抱歉。 – RamRaider

回答

1

因为Content-Type的是application/json(不application/x-www-form-urlencoded$inputJSON = file_get_contents('php://input');

编辑:在PHP "php://input" vs $_POST

+0

它的工作!非常感谢! – peyeruni

+0

但是,您能否用简单的语言解释一下,为什么我应该执行file_get_contents('php:// input')?因为我很确定有其他像我这样的noob编码器:) – peyeruni

+0

当然。 有一个很好的解释http://stackoverflow.com/questions/8893574/php-php-input-vs-post –