为什么服务器对post请求返回500响应

2024-09-29 21:58:45 发布

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

我试图从带有请求的steamworkshopdownloader.io下载文件,但它总是返回500错误。我做错了什么?我对请求不是很熟悉

代码:

import requests

def downloadMap(map_id):
    session = requests.session()
    file = session.post("https://backend-02-prd.steamworkshopdownloader.io/api/details/file", 
        data={"publishedfileid": map_id})
    print(file)

downloadMap("814218628")

Tags: 文件代码httpsioimportidmapsession
1条回答
网友
1楼 · 发布于 2024-09-29 21:58:45

如果要从该API下载文件,请尝试以下代码,它是根据我之前发布的注释(https://greasyfork.org/en/scripts/396698-steam-workshop-downloader/code)中的链接改编的,并转换为Python:

import requests
import json
import time

def download_map(map_id):
    s = requests.session()
    data = {
        "publishedFileId": map_id,
        "collectionId": None,
        "extract": True,
        "hidden": False,
        "direct": False,
        "autodownload": False
    }
    r = s.post('https://backend-01-prd.steamworkshopdownloader.io/api/download/request', data=json.dumps(data))
    print(r.json())
    uuid = r.json()['uuid']
    data = f'{{"uuids":["{uuid}"]}}'
    while True:
        r = s.post('https://backend-01-prd.steamworkshopdownloader.io/api/download/status', data=data)
        print(r.json())
        if r.json()[uuid]['status'] == 'prepared':
            break
        time.sleep(1)
    params = (('uuid', uuid),)
    r = s.get('https://backend-01-prd.steamworkshopdownloader.io/api/download/transmit', params=params, stream=True)
    print(r.status_code)
    with open(f'./{map_id}.zip', 'wb') as f:
        for chunk in r.iter_content(chunk_size=1024):
            if chunk:
                f.write(chunk)

download_map(814218628)

代码演示了如何使用API,并将名为814218628.zip的文件(或提供的任何文件)下载到脚本运行的目录中,zip存档包含.udk文件(由Unreal Engine开发工具包创建的游戏地图设计)

相关问题 更多 >

    热门问题