2016-11-26 10 views
3

httpリクエストを使用してpostメソッドから送信された値を取得できません。コントローラでPOSTメソッドを使用して値を取得するにはmagento 2 api

getメソッドを使用して値を取得していますが、postメソッドを使用して取得する必要があります。

私はビューを使用していません。私はhttp urlを呼び出し、POSTメソッドを使用してコントローラにデータを送信したいと思います。

これは私のコントローラは、私は、Magentoの2に新しいです、と私は問題が何であるかを理解していない

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(); 
    } 
} 

、どのように見えるかです。 誰かが助けることができればそれは素晴らしいことでしょう。

答えて

0

これはおそらく、MagentoがJsonとXml(これはexplained hereです)だけを理解しているhttp要求のContent-typeと関係があります。要求に異なるContent-typeを使用している場合、またはデータがヘッダーで宣言された型と一致しない場合、getPost()は機能しません。フォールバックとして

、あなたは常に次の方法を使用して、すべてのPOSTデータを取得することができます:あなたがそうする前にそれに応じてそれを処理する必要がありますので、

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

が、これは生の文字列を取得することに留意してくださいそれを使用して(例えば、json_decode()などで)。

この詳細については、this SO questionを参照してください。

関連する問題