2016-01-25 7 views
1

Люди, я думаю, я могу пропустить простую вещь, но я просто понятия не имею, где ее искать.Извлечение объекта JSON из HTTP-запроса

Итак, я пытаюсь реализовать API block.io, чтобы принимать биткойн-платежи на веб-сайте, построенном на PHP. Теперь Документы говорят, что все события уведомления будут использовать объекты JSON, перенесенные на мой сервер через запросы POST. Поэтому я решил сделать тестовый платеж BTC и зарегистрировать все запросы по указанному URL-адресу моей БД. И вот что я ген на демпинг 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 не дает ничего полезного. Итак, мой вопрос: как я могу найти строку JSON, объявленную в Content-Type?

Любое предложение было бы полезно! Спасибо!

+0

вы используете локон? – RamRaider

+0

нет, я не думаю, что должен, потому что они нажимают на меня уведомление о завершении транзакции BTC – peyeruni

+0

вправо, нормально - я вижу, что теперь смотрю на документы, что происходит, извините за путаницу. – RamRaider

ответ

1

Поскольку Content-Type является application/json (не application/x-www-form-urlencoded) $inputJSON = file_get_contents('php://input');

EDIT: превосходное объяснение в 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 –

Смежные вопросы