Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python请求自动添加http头_Python_Python Requests - Fatal编程技术网

python请求自动添加http头

python请求自动添加http头,python,python-requests,Python,Python Requests,出于某种原因,当我按以下顺序执行这些函数时: def __init__(self): self.headers={'Accept':'application/json'} def req1(self): headers=self.headers headers['bla']='bla' headers['Content-Type']='application/json' r=requests.post(url,headers=headers) def req2(

出于某种原因,当我按以下顺序执行这些函数时:

def __init__(self):
   self.headers={'Accept':'application/json'}

def req1(self):
   headers=self.headers
   headers['bla']='bla'
   headers['Content-Type']='application/json'
   r=requests.post(url,headers=headers)

def req2(self):
   headers=self.headers
   headers['bla']='bla'
   r=requests.post(url + "/test1",headers=headers)
“内容类型”标题也在
req2()
中发送

当我以相反的顺序执行这些功能时:

   req1()
   req2()
“内容类型”标题仅在
req1()
中发送

发生这种情况的原因可能是什么?也许请求会在没有询问的情况下添加
内容类型
标题

目前,我正在这样解决问题:

   req2()
   req1()

我在寻找更好的解决办法。有人能解释一下发生了什么吗?

当您将
标题分配给
self.headers
时,您实际上不是在复制词典,而是在创建另一个引用。然后,当您更新
标题
时,
self.headers
将被更新,因为两者都指向同一个确切的对象

如果您需要实际复制词典,有不同的方法,请参阅:


当您将
标题
分配给
self.headers
时,实际上并不是在复制字典,而是在创建另一个引用。然后,当您更新
标题
时,
self.headers
将被更新,因为两者都指向同一个确切的对象

如果您需要实际复制词典,有不同的方法,请参阅:

def req2():
   headers=self.headers
   headers['bla']='bla'
   del headers['Content-Type']
   r=requests.post(url + "/test1",headers=headers)