在python请求中包含多个标头

use*_*486 8 python curl python-2.7 python-requests

我在下面的curl中有这个HTTPS调用;

header1="projectName: zhikovapp"
header2="Authorization: Bearer HZCdsf="
bl_url="https://BlazerNpymh.com/api/documents?pdfDate=$today"

curl -s -k -H "$header1" -H "$header2" "$bl_url" 
Run Code Online (Sandbox Code Playgroud)

我想使用requests模块编写一个等效的python调用.

header ={
            "projectName": "zhikovapp",
            "Authorization": "Bearer HZCdsf="
        }
response = requests.get(bl_url, headers = header)
Run Code Online (Sandbox Code Playgroud)

但是,该请求无效.怎么了?

返回的响应的内容是这样的;

<Response [400]>
_content = '{"Message":"The request is invalid."}'
headers = {'Content-Length': '37', 'Access-Control-Allow-Headers': 'projectname, authorization, Content-Type', 'Expires': '-1', 'cacheControlHeader': 'max-age=604800', 'Connection': 'keep-alive', 'Pragma': 'no-cache', 'Cache-Control': 'no-cache', 'Date': 'Sat, 15 Oct 2016 02:41:13 GMT', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS', 'Content-Type': 'application/json; charset=utf-8'}
reason = 'Bad Request'
Run Code Online (Sandbox Code Playgroud)

我正在使用python 2.7

编辑:在Soviut指出它们之后,我纠正了一些syntex错误.

Sov*_*iut 15

request.get()headers参数应该被定义为一个字典,一组键/值对.您已经定义了一个字符串集(唯一列表).

你应该像这样声明你的标题:

headers = {
    "projectName": "zhikovapp",
    "Authorization": "Bearer HZCdsf="
}
response = requests.get(bl_url, headers=headers)
Run Code Online (Sandbox Code Playgroud)

请注意"key": "value"字典中每行的格式.

编辑:你Access-Control-Allow-Headers说他们会接受projectname并且authorization是小写的.你叫你的头projectName,并Authorization在他们大写字母.如果他们不匹配,他们将被拒绝.