【问题标题】:403 Response when I use requests to make a post request使用 requests 发出 post 请求时的 403 响应
【发布时间】:2022-01-17 20:42:01
【问题描述】:

我的核心代码如下:

import requests
url='https://www.xxxx.top'  #for example
data=dict()
session = requests.session()
session.get(url)
token = session.cookies.get('csrftoken')
data['csrfmiddlewaretoken'] = token
res = session.post(url=url, data=data, headers=session.headers, cookies=session.cookies)
print(res)
# <Response [403]>

变量url是我自己的网站,是基于Django的。我知道我可以使用 @csrf_exempt 禁用 CSRF,但我不想这样做。
但是,当我使用requests 发出发布请求时,它会返回 403 响应。我希望有人能告诉我我的方法有什么问题。

【问题讨论】:

    标签: django post python-requests http-status-code-403 csrf-token


    【解决方案1】:

    我已经解决了这个问题。在这种情况下,只需将Referer 添加到标题

    import requests
    url='https://www.xxxx.top'  #for example
    data=dict()
    session = requests.session()
    session.headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
                    'Chrome/51.0.2704.63 Safari/537.36','Referer':self.url}
    session.get(url)
    token = session.cookies.get('csrftoken')
    data['csrfmiddlewaretoken'] = token
    res = session.post(url=url, data=data, headers=session.headers, cookies=session.cookies)
    print(res)
    

    【讨论】:

      猜你喜欢
      • 2021-06-07
      • 2017-12-25
      • 1970-01-01
      • 2015-06-11
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      相关资源
      最近更新 更多