Я использую PHP-cURL (в WP-Plugin), чтобы получить ответ JSON от моего приложения ZF2.ZF2 RESTful JsonModel
Мне нужно сделать 2 запроса.
- OAuth
- запрос GET
Первый работает отлично я просто получить json_encoded массив обратно. Но когда я отправить запрос GET ответ выглядит (всего местного):
plugin.php: 16: строка «HTTP/1.1 200 OK Date: Пт, 18 ноября 2016 13:14:20 GMT Сервер: Apache/2.4.23 (Win32) OpenSSL/1.0.2h PHP/7.0.9 X-Powered-By: PHP/7.0.9 Set-Cookie: PHPSESSID = gb99a214u3rlc125ca4rscd441; expires = Fri, 18-Nov-2016 23:14:20 GMT; Max-Age = 36000; path =/Истекает: Чт, 19 ноября 1981 г. 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate Pragma: no-cache Transfer-Encoding: chunked Content-Type: application/json ; кодировка = UTF-8
{ "данные": { "машины": [{ "ID": 2590978, "Refnummer": 1000869, "Maschinentyp": "504"»... (длина = 41759)
Почему я получаю полный ответный заголовок? Если я сейчас попробую json_decode, мне нужно заранее избавиться от всего материала заголовка, могу ли я избежать этого?
Это, как я генерировать ОТКЛИК
$server = call_user_func($this->oauthServerFactory, $this->params('oauth'));
if (!$server->verifyResourceRequest(OAuth2Request::createFromGlobals())) {
// Not authorized return 401 error
$this->getResponse()->setStatusCode(401);
return $this->getResponse();
}
//GET DATA
$jsonArray = array();
$jsonArray['Machines'] = array();
$jsonMachinesArray = array();
foreach ($machines as $machine)
{
//ORDER DATA
}
return new JsonModel(array(
'data' => $jsonArray
));
И здесь я создать запрос:
$endpoint = $url;
//var_dump($access_token);
$headers = array(
'Content-Type: application/json',
'Authorization: Bearer '.$access_token,
);
$curl = curl_init($endpoint);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
echo "Performing Request...<br>";
$json_response = curl_exec($curl);
//var_dump($json_response);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
// evaluate for success response
if ($status != 200) {
throw new Exception("Error: call to URL $endpoint failed with status $status, response $json_response, curl_error " . curl_error($curl) . ", curl_errno " . curl_errno($curl) . "\n");
}
curl_close($curl);
return $json_response;
Omg Большое вам спасибо, я новичок в этом cURL ... CURLOPT_HEADER, чтобы ошибочно было правильно. – Tiega