gpt4 book ai didi

shell - Cakephp httpsocket ssl 不适用于控制台 shell

转载 作者:太空宇宙 更新时间:2023-11-03 13:12:58 26 4
gpt4 key购买 nike

我正在尝试使用 httpsocket 和 ssl 制作一个 cakephp shell。

我的“稻草人” 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”回应。)

总结一下:当我通过 Controller 或模型而不是通过控制台使用它时,openssl 可以工作。

有谁知道为什么,我怎样才能让它发挥作用?

谢谢!一个

最佳答案

控制台 PHP 和 Web PHP 通常是不一样的。两者都有不同的 PHP.ini 文件,因此导致某些模块未在 CLI 中启用,而您认为这些模块是通过 Web 界面理所当然的。

确保找到适用于 CLI 的正确 PHP.ini 并在那里启用 SSL 模块 openssl。

关于shell - Cakephp httpsocket ssl 不适用于控制台 shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15498186/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com