Как я могу получить данные тела запроса http в codeigniter? - PullRequest
5 голосов
/ 19 февраля 2012

У меня проблемы с передачей данных, закодированных в JSON, на мой контроллер CI из моего клиента IOS obj-c. Я считаю, что моя проблема такая же, как упомянутая здесь . Но я не могу найти никакой документации по объекту 'request' на сайте CodeIgniter. Как я могу просмотреть / проанализировать данные в теле http-запроса?

$ this-> request-> body ??

Спасибо!

Ответы [ 5 ]

18 голосов
/ 20 февраля 2012

Я смог заставить это работать, используя

$jsonArray = json_decode(file_get_contents('php://input'),true); 

Выше будет читать тело запроса из запроса ввода, а затем декодировать JSON в ассоциативный массив.

Я бывсе еще будет заинтересован в рефакторинге этого кода, если у CI есть оболочка для чтения данных тела http входного потока, как я выше.Довольно новый для этой структуры.

2 голосов
/ 10 октября 2017

Попробуйте использовать $this->input->raw_input_stream

0 голосов
/ 03 июля 2019

Если вы работаете с версией codeigniter> = 4, вы можете попробовать это:

$requestBody = json_decode($this->request->getBody());

$user = $requestBody->user;

Если вы работаете с версией 3, вы можете попробовать

$this->input->post('user', TRUE);
0 голосов
/ 23 декабря 2018

Объект "request", упомянутый в этом посте, принадлежит пакету с именем "codeigniter-restserver".Вы можете найти более подробную информацию здесь .

Принятый ответ является рабочим, но CodeIgniter предоставляет $this->input->raw_input_stream, который дает вам именно то, что вам нужно.Таким образом, чтобы писать вещи способом CodeIgniter, вы должны использовать:

$jsonArray = json_decode($this->input->raw_input_stream, true);

И вы заметите, что исходный код raw_input_stream также использует метод file_get_contents('php://input').

0 голосов
/ 28 сентября 2013

Из документации CodeIgniter для CI 2.1 Я вижу, что класс Input обеспечивает следующий вызов

 $this->input->post(NULL, TRUE); // returns all POST items with XSS filter 

Таким образом, вы можете убедиться, что тело запроса отфильтровано по XSS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...