私はZF2アプリケーションからJSON応答を得るためにPHP-cURL(WP-Plugin)を使用します。ZF2 RESTful JsonModel
私は2つの要求をしなければなりません。
- のOAuth
- GETリクエスト
最初のものは、私はちょうどバックjson_encoded配列を取得正常に動作します。 しかし、私は、GETリクエストを送信するときに応答が(ローカルのすべて)のようになります。
plugin.php:16:文字列「HTTP/1.1 200 OK日:金、2016年11月18日午後01時14分20秒GMT サーバー:Apache/2.4.23(Win32)OpenSSL/1.0.2h PHP/7.0.9 X-Powered-By:PHP/7.0.9セットクッキー: PHPSESSID = gb99a214u3rlc125ca4rscd441;期限切れ=金曜日、2011年8月18日 23:14:20 GMT;最大年齢= 36000; path =/Expires:Thu、1981年11月19日08:52:00 GMT Cache-Control:no-store、no-cache、must-revalidateプラグマ: no-cache転送エンコーディング:chunkedコンテンツタイプ:application/json ; charset = 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;
おかげさまで、ありがとうございました。私はそのcURLに新しいです... CURLOPT_HEADERをfalseにすることは正しいことでした。 – Tiega