删除此站点

2024-10-02 20:32:43 发布

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

我试图用这个payload从这个站点模仿这个POST request

从这个URL:https://surviv.io/stats/gert1

这是我试图mimic的请求的图像。 enter image description here

以下是我当前使用python编写的代码:

import requests
headers = {'content-type': 'application/json; charset=UTF-8'}
url = 'https://surviv.io/api/user_stats'
payload = {"slug":"gert1","interval":"all","mapIdFilter":"-1"}
r = requests.post(url=url, headers=headers, data=payload)
print(r.content)

这将返回:

b'<html>\r\n<head><title>500 Internal Server Error</title></head>\r\n<body bgcolor="white">\r\n<center><h1>500 Internal Server Error</h1></center>\r\n<hr><center>nginx</center>\r\n</body>\r\n</html>\r\n'

这不是我想要的回报。我希望它返回user_stats请求的response选项卡中显示的确切响应,其中包含玩家的统计信息

这就是我希望它返回的内容:

{"slug":"gert1","username":"GERT","player_icon":"","banned":false,"wins":61,"kills":2830,"games":2034,"kpg":"1.4","modes":[{"teamMode":1,"games":1512,"wins":46,"kills":2230,"winPct":"3.0","mostKills":21,"mostDamage":1872,"kpg":"1.5","avgDamage":169,"avgTimeAlive":92},{"teamMode":2,"games":255,"wins":4,"kills":234,"winPct":"1.6","mostKills":8,"mostDamage":861,"kpg":"0.9","avgDamage":162,"avgTimeAlive":102},{"teamMode":4,"games":267,"wins":11,"kills":366,"winPct":"4.1","mostKills":17,"mostDamage":2225,"kpg":"1.4","avgDamage":246,"avgTimeAlive":125}]}

Tags: urlstatsgamesheaderspayloadcenterwinskills
2条回答

在post方法中应该使用json属性,而不是数据r = requests.post(url=url, headers=headers, json=payload)

将您的代码更改为以下忘记使用json

import json
import requests
headers = {'content-type': 'application/json; charset=UTF-8'}
url = 'https://surviv.io/api/user_stats'
payload = {"slug":"gert1","interval":"all","mapIdFilter":"-1"}
r = requests.post(url=url, headers=headers, data=json.dumps(payload))
print(r.content)

相关问题 更多 >