を含んでいません。request.METAは、私は次のコードでdjangorestframework使用していヘッダ
しかし、このヘッダは間違いなく、要求に存在する(このキーはローカルDBであるので、ここそれを貼り付けるには大丈夫です):
なぜ?
を含んでいません。request.METAは、私は次のコードでdjangorestframework使用していヘッダ
しかし、このヘッダは間違いなく、要求に存在する(このキーはローカルDBであるので、ここそれを貼り付けるには大丈夫です):
なぜ?
問題は要求ヘッダーのアンダースコアにあります。
設定API-KEY
としてヘッダ(使用ハイフン、アンダースコアではない)、あなたはいくつかのサーバがちょうどアンダースコアを無視するということである
request.META.get('HTTP_API_KEY')
この行動の理由を使用して、それをキャプチャすることができます。
は、この関連する質問Why underscores are forbidden in HTTP header names
任意のカスタムヘッダーには、METAのHTTP_
キーワードが前に付いています。
あなたは時々、キャッシュ用ワニスのようなフレームワークを、前処理
request.META.get('HTTP_API_KEY')
のようなヘッダにアクセスしてみてくださいすることができますので、リクエストに応じた任意のカスタムヘッダーを破棄するように設定されています。おそらく、このようなことはあなたのサーバー上で行われますか?
これはローカルの開発サーバー(Djangoに組み込まれています)です。 – arts777
トークンベースの認証とセッションベースの認証の両方を使用しているためです。私はあなたが実際にクッキーから得ることができるセッションを使用して認証されている場合、ブラウザを介してそれをテストしていると仮定し、その後、ユーザーとそのトークンを逆選択します。
ただし、Curlまたは任意のRESTクライアントでテストしてみてください。 request.META
を印刷 - 最初のキーはHTTP_AUTHORIZATION
になります。
フムを参照してください動作しません。それはリクエストです。メータの内容:http://pastebin.com/GFRVyv4H – arts777