2016-11-26 115 views
3

我无法使用http请求获取从post方法发送的值。在magento 2 api中使用post方法在控制器中获取值发送

我使用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

它可能与http请求的Content-type有关,其中Magento只能理解Json和Xml(这是explained here)。如果您在请求中使用不同的Content-type,或者您的数据与标头中声明的类型不匹配,则getPost()将不起作用。

作为备用,可以随时通过以下方式获得所有的POST数据:

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

请记住,这将得到原始字符串,所以你可能需要相应之前对其进行处理使用它(例如与json_decode()或类似的东西)。

有关详细信息,请检查this SO question

相关问题