403禁止请求,PHP Post请求在Python中工作

2024-04-26 06:46:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近在玩Php,遇到了一个错误,我不知道该怎么办。因此,我用Python编写了以下代码:

import os
import requests
import urllib

s = requests.Session()
s.get('https://profile.callofduty.com/cod/login')
data = {'username': 'My@Email.com',
        'password': 'myPassword',
        'remember_me': 'true',
        '_csrf': s.cookies['XSRF-TOKEN']}
s.post('https://profile.callofduty.com/do_login?new_SiteId=cod', params=data)

print(s.cookies)

由于种种原因,这不是我的真实数据

我用Php编写了以下代码:

<?php

var_dump($_POST["X-CSRFToken"]);
$ch = curl_init();
$url = 'https://profile.callofduty.com/do_login?new_SiteId=cod';
$datihfbskdhfibfa = array(
  'username' => 'My@Email.com',
  'password' => 'MyPassword',
  'remember_me' => 'true',
  '_csrf' => $_POST["X-CSRFToken"]
);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $datihfbskdhfibfa);
$server_output = curl_exec($ch);
echo $server_output;
curl_close ($ch);

在执行POST请求之前,我从另一个Php文件接收X-CSRF,并通过JS将其传递给这个Php文件。 如果我运行Python,我会收到令牌,而使用Php,它会返回403。有人能解释一下为什么会有问题吗


Tags: 代码httpsimportcomlogincurlchprofile

热门问题