簡體   English   中英

當標頭名稱包含`_`下划線時,獲取Django標頭值的正確格式是什么

[英]What is the correct format to get Django Header value when Header name contain `_` underscore

我的CURL命令:

curl -X POST \
  http://localhost:8000/sendData/ \
  -H 'authorization: Token b67d31c42d98b3c97b28c737629dca63ef5043fc' \
  -H 'cache-control: no-cache' \
  -H 'client_cdata: virat' \
  -H 'clientdata: sachin' \
  -H 'content-type: multipart/form-data;' \
  -H 'postman-token: ed70d17c-ecf6-66c7-619e-85eac7d62803' \
  -F purchasID=23124212 \
  -F purchaserAmount=4320'

我試圖獲取標題數據

使用request.META['HTTP_CLIENTDATA']

我獲得的sachin值與嘗試獲取request.META['HTTP_CLIENT_CDATA']時的值相同,它顯示*** KeyError錯誤。

標頭名稱包含_時,獲取標頭值的正確格式是什么?

我無法更改標頭數據,因為此API是由另一個域調用的(結果由另一個站點或服務器提供),所以我正在創建API端點。

提前致謝。

在假設您可能使用Nginx或Apache作為反向代理的前提下,這些服務器會刪除包含下划線的標頭,以避免將此類標頭映射到CGI變量時出現問題。

如果您需要支持下划線(聽起來像您那樣,因為您來自第三方),那么您必須啟用支持。

對於Nginxlink

underscores_in_headers on;

對於Apachelink

SetEnvIfNoCase ^client.cdata$ ^(.*)$ fix_client_cdata=$1
RequestHeader set client-cdata %{fix_client_cdata}e env=fix_client_cdata

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM