PHP HttpRequest::setHeaders()将我的头名称转换为大小写

PHP HttpRequest::setHeaders()将我的头名称转换为大小写,php,http-headers,header,httprequest,Php,Http Headers,Header,Httprequest,我需要将以下标题与我的httpRequest一起发送: “X-ABC-Reco-Token”=>“a0d15977” 我有以下代码: $array = array("X-ABC-Reco-Token"=>$token); $this->request->setHeaders($array); echo var_dump($this->request->getHeaders()); 但是,这是我得到的输出: "X-Abc

我需要将以下标题与我的httpRequest一起发送:

“X-ABC-Reco-Token”=>“a0d15977”

我有以下代码:


            $array = array("X-ABC-Reco-Token"=>$token);
            $this->request->setHeaders($array);
            echo var_dump($this->request->getHeaders());
但是,这是我得到的输出:

 "X-Abc-Reco-Token"=>string 'a0d15977' 
请注意,PHP将X-ABC转换为X-ABC


有没有一种方法可以强制标头符合我的要求?

在最坏的情况下,您可以创建自己的类并从httpRequest继承,然后重载setHeaders函数并使其按您的要求工作。但要做到这一点,您需要该类的源代码


我心目中的另一个方法是从httpRequest继承并添加一个类似“fix()”的方法,它将通过str_replace()Abc to Abc以您的方式设置http请求等待的类的属性(可能是“queryData”?-请参见)。是否也会发生同样的情况,直接用字符串调用
header()
。但是,如果您要区分大小写检查http头名称,您可能不应该这样做,因为http 1.0和1.1的RFC都明确指出http头名称不区分大小写。是的,不是我。我调用的服务正在敏感地检查标头大小写。我们讨论了这个问题,服务提供商同意更改其代码以不敏感地检查标头大小写。无论如何,这是对项目不必要的延误:(