You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python requests缺少curl具备的功能吗?同接口curl正常requests返回404

问题原因
  • 端口未正确指定:PHP代码中通过CURLOPT_PORT => 3456显式指定了请求端口为3456,实际请求的目标地址是https://aartre.com:3456/user/login,但Python代码中URL没有携带端口,默认走HTTPS标准443端口请求,自然找不到对应接口返回404。
  • POST参数未完成插值:Python代码中定义data的字符串没有加f前缀,不会自动替换{email}和{password}为实际变量值,提交的参数是无效的原始模板字符串。
  • 可选配置对齐:PHP开启了CURLOPT_FOLLOWLOCATION自动跟随重定向,可在Python请求参数中显式加allow_redirects=True对齐配置,避免特殊场景跳转失效。
修正后的Python代码
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning

s = requests.Session()
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

headers = {
    "Connection":"keep-alive",
    "User-Agent":"Mozilla/5.0 (Linux; Android 10; M2006C3LG Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/87.0.4280.101 Mobile Safari/537.36",
    "Content-Type":"application/x-www-form-urlencoded; charset=UTF-8",
    "Accept-Encoding":"gzip, deflate"
}

def post(url, data):
    return s.post(url, data=data, headers=headers, verify=False, allow_redirects=True)

def login(email, password):
    # 补上3456端口
    url = "https://aartre.com:3456/user/login"
    # 加f前缀完成变量插值
    data = f"email={email}&password={password}"
    res = post(url, data)
    print(res.json())

email = "email@gmail.com"
password = 'password'
login(email, password)

内容的提问来源于stack exchange,提问作者mbithi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 20:15:02