Yii2 HTTPClient почему-то не отправляет header с именем в формате snake_case. В документации и в поиске не нашёл ничего про это поведение.
Вот в запросе добавляются заголовки, в них — 2 в формате snake_case: public_key, snake_case
private function prepareRequest(string $link, array $data = []): Request
{
$headers = [
'bond' => $this->publicKey,
'snake_case' => $this->publicKey,
'publickey' => $this->publicKey,
'public_key' => $this->publicKey,
self::HEADER_PUBLIC_KEY => $this->publicKey,
self::HEADER_SIGNATURE => $this->createSignature($this->publicKey, $this->privateKey, $data),
];
return $this
->client
->createRequest()
->addHeaders($headers)
->setUrl($this->apiEndPoint . $link);
}
Но приходят только заголовки, которые не в snake_case:
При этом, в HeaderCollection попадает:
Распечатка
var_dump($request->getHeaders());
// Result:
object(yii\web\HeaderCollection)#407 (2) {
["_headers":"yii\web\HeaderCollection":private]=>
array(6) {
["bond"]=>
array(1) {
[0]=>
string(64) "PZC8ga2HYU_a-c2kKMvgpWoD7QlOyopakIrGimXGvcHOOsGhSHm6PvRL7UiII3z_"
}
["snake_case"]=>
array(1) {
[0]=>
string(64) "PZC8ga2HYU_a-c2kKMvgpWoD7QlOyopakIrGimXGvcHOOsGhSHm6PvRL7UiII3z_"
}
["publickey"]=>
array(1) {
[0]=>
string(64) "PZC8ga2HYU_a-c2kKMvgpWoD7QlOyopakIrGimXGvcHOOsGhSHm6PvRL7UiII3z_"
}
["public_key"]=>
array(1) {
[0]=>
string(64) "PZC8ga2HYU_a-c2kKMvgpWoD7QlOyopakIrGimXGvcHOOsGhSHm6PvRL7UiII3z_"
}
["public-key"]=>
array(1) {
[0]=>
string(64) "PZC8ga2HYU_a-c2kKMvgpWoD7QlOyopakIrGimXGvcHOOsGhSHm6PvRL7UiII3z_"
}
["signature"]=>
array(1) {
[0]=>
string(64) "82c9e42a48ab418a5e9e6fbb573b0e72fd34092a47b869a9a3592dbdbbb5123c"
}
}
["_originalHeaderNames":"yii\web\HeaderCollection":private]=>
array(6) {
["bond"]=>
string(4) "bond"
["snake_case"]=>
string(10) "snake_case"
["publickey"]=>
string(9) "publickey"
["public_key"]=>
string(10) "public_key"
["public-key"]=>
string(10) "public-key"
["signature"]=>
string(9) "signature"
}
}