Lumen / Laravel从Http标头获取参数值

时间:2018-11-25 04:13:09

标签: laravel http-headers lumen guzzle

我有一个Laravel应用,该应用向Lumen API发出请求,并使用GuzzleHttp \ Client将参数传递给HTTP标头。

以下是Laravel应用发出的请求的相关代码:

public function getJson($url) {

        $client = new Client;

        $header =  [
            'admin_user_id' => 2,
        ];

        $response = $client->request('GET', $url , [
            'headers' => $header
        ]);

        return $response->getBody();
    }

然后在我的Lumen API中,我尝试通过http标头访问参数值,如下所示:

use Illuminate\Http\Request;

class ProductController extends Controller {

    public function fetch_all(Request $request) {

            return $user_id = $request->header('admin_user_id');
      }
}

但是,$request->header('admin_user_id');似乎没有返回任何值。

1 个答案:

答案 0 :(得分:1)

我首先要验证API路由是否已被击中,并可能将所有请求标头转储出去,以确保您的请求被发送到具有正确标头的Lumen API。

还要注意,如果标头包含下划线,则网络服务器可能会删除该标头。我相信nginx会默认执行此操作。这是有关此主题的SO问题的链接:https://stackoverflow.com/a/22856867/7965016

在使用自定义标头时,我通常会坚持使用 LinearGradient( begin: Alignment(-1.0, -4.0), end: Alignment(1.0, 4.0), 或您所用的x-custom-header格式。