gpt4 book ai didi

java - 为什么 php slim header 已经串联?

转载 作者:行者123 更新时间:2023-11-30 06:52:13 31 4
gpt4 key购买 nike

我需要将一些 header 放入 HttpUrlConnection 中,以便将它们发送到使用 Slim 框架(版本 3)用 PHP 编写的 Web 服务器。

当我在连接中放置更多具有相同 key 的 header 时,我遇到了麻烦。例如:

HttpUrlConnection conn = createConnectionSomeHow();
conn.addRequestProperty("myHeader", "value1");
conn.addRequestProperty("myHeader", "value2");

如果我在 conn.getRequestProperties() 上使用 watch,我会看到一个带有键 "myHeader" 的 header 和一个列表2 个元素作为值。正如我所愿。

但是我的网络服务器没有很好地接收该 header 。

如果我写:

$values = $request->getHeader('myHeader');

$values 不是一个包含 2 个元素的列表,它是一个包含 1 个元素且值为 "value1, value2" 的列表,即连接在一个元素中的 2 个值单字符串。这实在是太奇怪了。我从 Slim documentation 读到:

You can get a single header’s value(s) with the PSR 7 Request object’s getHeader($name) method. This returns an array of values for the given header name. Remember, a single HTTP header may have more than one value!

有一个方法可以自动连接 header 的值,它称为getHeaderLine。我不会这么调用它。我正在调用 getHeader

这种行为正确吗?我是不是搞错了什么?

最佳答案

不错的收获。这实际上是一个错误。

我创建了一个issue at the Slim Github project为此。

作为解决方法,您可以自己拆分 header :

$values = explode(',', $request->getHeaderLine('myHeader'));

关于java - 为什么 php slim header 已经串联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42531499/

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