ネイティブの Zend Framework 2 http\curl ライブラリを使用しようとしていますが、リモート アプリケーションにリクエストを送信するようにできます。POST 値を取得できません。
2 つの例を示すコードを次に示します。最初の例はネイティブ PHP curl を使用しており、正常に動作します。2 番目の例は ZF2 http\curl ライブラリを使用しており、POST パラメーターを渡しません。
例 1 (ネイティブ PHP ライブラリ)
$url = $postUrl . "" . $postUri;
$postString = "username={$username}&password={$password}";
//This works correctly using hte native PHP sessions
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
$output = curl_exec($ch);
curl_close($ch);
var_dump($output); //outputs the correct response from the remote application
例 2 (ZF2 ライブラリの使用)
$url = $postUrl . "" . $postUri;
$postString = "username={$username}&password={$password}";
//Does not work using ZF2 method!
$request = new Request;
$request->setUri($url);
$request->setMethod('POST');
$adapter = new Curl;
$adapter->setOptions([
'curloptions' => [
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $postString,
CURLOPT_HEADER => 1
]
]);
$client = new Client;
$client->setAdapter($adapter);
$response = $client->dispatch($request);
var_dump($response->getBody());
私がこれでどこが間違っているかを指摘できる人はいますか? ZF2 のドキュメントを確認しましたが、最も包括的なものではありません。