我正在尝试使用带有 ssl 的 httpsocket 制作 cakephp shell。
我的“稻草人”外壳:
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 时,它可以工作,但不能通过控制台使用。
有谁知道为什么,以及如何使它工作?
谢谢!一个