通过HttpSocket
向服务器发出HTTPS请求时,我遇到了问题。 HTTP请求工作正常。检查该课程的代码,我注意到HttpSocket
中的the following piece starting on line 272。我正在使用最新的2.04稳定版,顺便说一句。
if (is_array($this->request['header'])) {
if (!empty($this->request['cookies'])) {
$cookies = $this->buildCookies($this->request['cookies']);
}
$schema = '';
$port = 0;
if (isset($this->request['uri']['schema'])) {
$schema = $this->request['uri']['schema'];
}
if (isset($this->request['uri']['port'])) {
$port = $this->request['uri']['port'];
}
if (
($schema === 'http' && $port != 80) ||
($schema === 'https' && $port != 443) ||
($port != 80 && $port != 443)
) {
$Host .= ':' . $port;
}
$this->request['header'] = array_merge(compact('Host'), $this->request['header']);
}
据我所知,request
数组永远不会有schema
个密钥,尽管它有一个scheme
密钥,如here所示。有趣的是,似乎the code has been like since version 1.0我在网上找不到任何关于它的内容。我也更改了这封信,只是为了查看我的代码是否有效,但它引起了警告和通知。所以...我错过了什么?
在我开始深入挖掘代码之前,我想由专家运行它。任何帮助或澄清将不胜感激。
感谢。
答案 0 :(得分:1)
英语不是我的第一语言 但是从我对这些来源的理解来看 http://www.englishforums.com/English/SchemaVsScheme/jkwmw/post.htm 和 http://forum.wordreference.com/showthread.php?t=711283&langid=3 以及 http://www.answers.com/topic/scheme / http://www.answers.com/topic/schema 这确实是一个错字。
它可能应该是“方案”,因为它不是图形或“可见”表示,而是应用某种逻辑方式。 此外,完整的框架在任何地方使用关于DB表格表示的URL和模式的方案。
我打开了一张票: http://cakephp.lighthouseapp.com/projects/42648-cakephp/tickets/2345-typo-in-httpsocket-class