通过 Postman 发送 "Server Params" :
Sending "Server Params" through Postman :
感谢 Symfony HttpFoundation 组件,我们可以像下面的脚本一样检索 服务器参数:
// retrieves SERVER variables
$request->server->get('HTTP_HOST')
所以,我有以下结构,我想要服务器参数:
public function __construct(RequestStack $requestStack)
{
$request = $requestStack->getCurrentRequest();
$this->country = self::DEFAULT_COUNTRY;
$this->lang = self::DEFAULT_LANG;
$this->brand = self::DEFAULT_BRAND;
$this->jobBrand = $this->brand;
if ($request) {
if (!empty($request->server->get(self::ENV_COUNTRY_CODE))) {
$this->country = $request->server->get(self::ENV_COUNTRY_CODE);
}
if (!empty($request->server->get(self::ENV_LANG_CODE))) {
$this->lang = $request->server->get(self::ENV_LANG_CODE);
}
if (!empty($request->server->get(self::ENV_BRAND))) {
$this->jobBrand = $request->server->get(self::ENV_BRAND);
$this->brand = str_replace('pro', '', $this->jobBrand);
}
if (empty($this->country) || empty($this->lang)) {
throw new NoApacheLocaleException();
}
}
}
供参考,在测试阶段,我使用 Postman 作为 http 客户端。
所以我的问题是:如何通过 Postman 发送我的参数以便通过 $request->server->get('param') ?
根据@Cerad 的说法,我对他的回答深信不疑:
$_SERVER 由 PHP 根据服务器端信息初始化。不使用来自 HTTP 请求的任何内容。我想您可以通过使用像 _server_http_host 这样的变量名来伪造它进行测试,并相应地调整您的代码。但是,如果您使用的是 Symfony 框架,那么使用 Symfony 的功能测试方法可能会更好。
感谢 Symfony HttpFoundation 组件,我们可以像下面的脚本一样检索 服务器参数:
// retrieves SERVER variables
$request->server->get('HTTP_HOST')
所以,我有以下结构,我想要服务器参数:
public function __construct(RequestStack $requestStack)
{
$request = $requestStack->getCurrentRequest();
$this->country = self::DEFAULT_COUNTRY;
$this->lang = self::DEFAULT_LANG;
$this->brand = self::DEFAULT_BRAND;
$this->jobBrand = $this->brand;
if ($request) {
if (!empty($request->server->get(self::ENV_COUNTRY_CODE))) {
$this->country = $request->server->get(self::ENV_COUNTRY_CODE);
}
if (!empty($request->server->get(self::ENV_LANG_CODE))) {
$this->lang = $request->server->get(self::ENV_LANG_CODE);
}
if (!empty($request->server->get(self::ENV_BRAND))) {
$this->jobBrand = $request->server->get(self::ENV_BRAND);
$this->brand = str_replace('pro', '', $this->jobBrand);
}
if (empty($this->country) || empty($this->lang)) {
throw new NoApacheLocaleException();
}
}
}
供参考,在测试阶段,我使用 Postman 作为 http 客户端。
所以我的问题是:如何通过 Postman 发送我的参数以便通过 $request->server->get('param') ?
根据@Cerad 的说法,我对他的回答深信不疑:
$_SERVER 由 PHP 根据服务器端信息初始化。不使用来自 HTTP 请求的任何内容。我想您可以通过使用像 _server_http_host 这样的变量名来伪造它进行测试,并相应地调整您的代码。但是,如果您使用的是 Symfony 框架,那么使用 Symfony 的功能测试方法可能会更好。