Magento 2 Как получить ответ от внешнего сервиса API - PullRequest
0 голосов
/ 04 января 2019

У меня проблема с получением ответа от внешнего 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] => требуется)

...