私はsslで、cakephpシェルにhttpsocketを使用させようとしています。
私の「ストローマン」シェル:
App::uses('HttpSocket', 'Network/Http');
class UpdaterShell extends AppShell {
public function main() {
// STRAWMAN
$httpSocket = new HttpSocket();
$results = $httpSocket->post(
'https://accounts.google.com/o/oauth2/token',
'foo=bar'
);
debug($results);
}
}
この簡単なテストでは必要なパラメータを提供していないため、Googleからの応答が成功することは期待できません。
しかし、私が得るものは次のとおりです。Error@ unable to find the socket transport "ssl" - did you forget to enable it when you configured php?
私はしませんでした、opensslが有効になっています、そしてそれを証明するために、これは機能します:
App::uses('AppController', 'Controller');
App::uses('HttpSocket', 'Network/Http');
class StrawmanController extends AppController {
public function index() {
// STRAWMAN
$httpSocket = new HttpSocket();
$results = $httpSocket->post(
'https://accounts.google.com/o/oauth2/token',
'foo=bar'
);
debug($results);
}
}
(そして、作品によって、私は「invalid_request」で応答することを意味します。)
要約すると、opensslは、コントローラーまたはモデルを介して使用すると機能しますが、コンソールを介しては機能しません。
誰かがその理由と、それを機能させる方法を知っていますか?
ありがとう!A