Я вызываю функцию из API при тестировании в Почтальоне. Я получаю запрошенный результат в виде ответа JSON, а при использовании в приложении iOS возвращает ошибку.
if (isset($this->request->get['json']) and $this->request->get['json'] == 123) {
$this->load->model('api/tokenupdate');
$bearer = $this->model_api_tokenupdate->getBearerToken();
$token = $this->model_api_tokenupdate->get_token_data($bearer);
if ($token) {
$this->model_api_tokenupdate->update_session($token['access_token'], json_decode($token['data'], true));
$this->model_api_tokenupdate->update_server_session();
}else{
echo "Error";
exit;
}
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($this->data));
}else{
$this->response->setOutput($this->render());
}
JSON не можетбыть сериализован из-за ошибки: данные не могут быть прочитаны, потому что они не в правильном формате.
Даже при попытке HTTP-запроса в браузере я получил ответ об ошибке вместо успешного ответа.
Я полностью сбит с толку, почему эта ошибка и все вроде бы хорошо, как тест в Почтальоне.
Я вызываю API, используя Alamofire
Alamofire.request(urlString,method: method,parameters:params).validate().responseJSON { response in
UPD1:Когда я var_dump ($ token) в почтальоне в качестве положительного результата, я получаю массив
array(7) {
["access_token"]=>
string(40) "1abc1234a1234567a4dfcc20042b67b22dd45f1c"
["client_id"]=>
string(21) "shopping_oauth_client"
["user_id"]=>
NULL
["expires"]=>
string(19) "1970-01-01 13:08:29"
["scope"]=>
NULL
["session_id"]=>
string(26) "aipsfc22p64ff99ugt35e9kc2d"
["data"]=>
string(145) "{"language":"en","currency":"USD","cart":[],"rest_session_id":"aipsfc22p64ff99ugt35e9kc2d","token_id":"1abc1234a1234567a4dfcc20042b67b22dd45f1c"}"
}
В то время как HTTP-запрос в браузере или приложении я получаю bool(false)