У меня проблема с получением ответа от внешнего API в Magento 2. Мои параметры неправильно кодируются в json.Я использую Magento \ Framework \ HTTP \ ZendClientFactory для доступа к этому.
Ниже приведен мой код, где я пытаюсь вызвать API и получить ответ, и я не уверен, где яидет не так.
public function apiCaller()
{
$apiKey = $this->getConfigData('bearer_token');
$endpointUrl = $this->getConfigData('session_endpoint');
$params = array(
"origin" => "Kandy",
"destination" => "Nugegoda",
"weight" => "1.0",
"domestic" => "true"
);
$json = json_encode($params);
$client = $this->_httpClientFactory->create();
$client->setUri($endpointUrl);
$client->setMethod(\Zend_Http_Client::POST);
$client->setHeaders(\Zend_Http_Client::CONTENT_TYPE, self::$jsonDataType);
$client->setHeaders('API-KEY', $apiKey);
$client->setParameterPost($json);
$request = $client->request();
$response = $request->getBody();
$this->_logger->log(100, print_r(json_decode($response),true));
$this->_logger->log(100, print_r($params,true));
return $response;
}
Ниже на рисунке показаны ожидаемые результаты:
введите описание изображения здесь
Фактические результаты в моем файле журнала отладки:
[2019-01-04 07:12:06] main.DEBUG: объект stdClass ([origin] => требуется)