POST请求返回500错误:爬取Comedy Cellar演出阵容API求助
解决POST请求返回500状态码的方案
问题原因
你当前代码的参数传递格式不符合接口要求:接口需要action作为独立的表单参数,json是另一个单独的表单参数(值为JSON格式的字符串),但你把action嵌入到JSON结构中一起发送,导致后端无法正确解析参数,从而返回500错误。
修正后的代码
import requests import json lineup_url = 'https://www.comedycellar.com/lineup/api/' # 构造正确的表单参数:action单独作为键,json参数值为序列化后的JSON字符串 payload = { 'action': 'cc_get_shows', 'json': json.dumps({"date":"2024-01-08","venue":"newyork","type":"lineup"}) } # 使用data参数发送表单数据,而非json参数 response = requests.post(lineup_url, data=payload) # 验证结果 print(response.status_code) print(response.text)
额外注意事项
如果修正后仍有问题,可以模拟浏览器的请求环境,添加必要的请求头:
headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'Referer': 'https://www.comedycellar.com/new-york-line-up/' } response = requests.post(lineup_url, data=payload, headers=headers)
内容的提问来源于stack exchange,提问作者person1234568475
相关产品推荐
相关产品推荐

