2016-11-26 2 views
3

Я не могу получить значения, отправленные из метода post, используя http-запрос.Получение значений, отправленных с использованием метода post в контроллере в magento 2 api

Я получаю значения, используя метод get, но мне нужно получить его с помощью метода post.

Я не использую никакого представления, я хочу вызвать http url и отправить некоторые данные в свой контроллер, используя метод post.

Это как мой контроллер выглядит,

namespace Spaarg\eMenuApi\Controller\Index; 

class Products extends \Magento\Framework\App\Action\Action 
{ 
    public function __construct(\Magento\Framework\App\Action\Context $context) 
    { 
     return parent::__construct($context); 
    } 

    public function execute() 
    { 
     //$token = $this->getRequest()->getPostValue(); 
     $token = $this->getRequest()->getPost(); 
    } 
} 

Я новичок в Magento 2, и я не понимаю, в чем проблема. Будет здорово, если кто-то может помочь.

ответ

0

Возможно, это связано с Content-type http-запроса, где Magento понимает только Json и Xml (это explained here). Если вы используете другой запрос Content-type в запросе или ваши данные не соответствуют типу, объявленному в заголовке, то getPost() не будет работать.

Как запасной вариант, вы всегда можете получить все данные POST, используя следующий путь:

public function execute() 
{ 
    $postData = file_get_contents("php://input"); 
} 

Имейте в виду, что это будет получить сырье строку, так что вам, вероятно, потребуется обработать его соответствующим образом, прежде чем используя его (например, с json_decode() или что-то в этом роде).

Для получения дополнительной информации об этом, пожалуйста, проверьте this SO question.

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