2016-11-26 68 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

相關問題