Python请求的属性错误和CSRF令牌错误

时间:2021-03-12 13:27:37

标签: python python-requests

我正在尝试通过 POST 请求发送一些数据,但收到“缺少 CSRF 令牌”错误。我正在尝试使用 requests.post 标头发送(反)CSRF 令牌,如下所示:

response = requests.post("my_url", data={"id_user": current_user_id.decode("utf-8")}, headers='Authorization: X-CSRF-TOKEN ' + session['csrf_token'])

但是,在运行时,Python 会抛出以下错误:

AttributeError: 'str' object has no attribute 'items'

我不确定我哪里出错了,有人可以帮我评估错误发生的原因吗?

1 个答案:

答案 0 :(得分:1)

HEREError Traceback (most recent call last) <ipython-input-72-e0860df7cdc5> in <module> ----> 1 response = evAPI.get_stations_circular_search(latitude = 37.87166, longitude =-122.2727, radius = 10000) 2 response /Applications/anaconda3/lib/python3.7/site-packages/herepy/ev_charging_stations_api.py in get_stations_circular_search(self, latitude, longitude, radius, connectortypes) 100 } 101 response = self.__get( --> 102 self._base_url + "stations.json", data, EVChargingStationsResponse 103 ) 104 return response /Applications/anaconda3/lib/python3.7/site-packages/herepy/ev_charging_stations_api.py in __get(self, base_url, data, response_cls) 41 return response_cls.new_from_jsondict(json_data) 42 else: ---> 43 raise error_from_ev_charging_service_error(json_data) 44 45 def __connector_types_str(self, connector_types: List[EVStationConnectorTypes]): HEREError: Error occured on __get 模块将 requests 参数作为 Python 字典。而不是像这样使用字符串:

headers

你需要使用这样的字典:

headers='Authorization: X-CSRF-TOKEN '+session['csrf_token']

如果你把代码放在一起,它看起来像这样:

headers={'Authorization': 'X-CSRF-TOKEN ' + session['csrf_token']}
相关问题