Python session.put 返回 415:不支持的媒体类型

问题描述 投票:0回答:1

我不知道为什么收到回复: “415:不支持的媒体类型”

我尝试赋予新的价值观。 当我得到一些值时,它工作得很好。

代码片段:

headers = {}
headers["charset"] = "utf-8"
headers["Accept-Language"] = "pl-PL"
headers["Content-Type"] = "application/json"

headers["Accept"] = "application/vnd.allegro.public.v1+json"
headers["Authorization"] = "Bearer {}".format(access_token)

with requests.Session() as session:
    session.headers.update(headers)
    DEFAULT_API_URL = "https://api.allegro.pl"
    payload = {"maxAmount": {"amount": "230.00", "currency": "PLN"}}

    response = session.put(
        url=DEFAULT_API_URL + "/bidding/offers/1498090700/bid",
        json=json.dumps(payload),
    )

    print(f"{response.status_code}: {response.reason}")
    print(response.json())

回应: “415:不支持的媒体类型”

python put
1个回答
0
投票

根据API文档,请求的内容类型也需要是

application/vnd.allegro.public.v1+json
。尝试例如

ALLEGRO_JSON = "application/vnd.allegro.public.v1+json"
DEFAULT_API_URL = "https://api.allegro.pl"
headers = {
    "Accept-Language": "pl-PL",
    "Content-Type": ALLEGRO_JSON,
    "Accept": ALLEGRO_JSON,
    "Authorization": f"Bearer {access_token}",
}

with requests.Session() as session:
    payload = {"maxAmount": {"amount": "230.00", "currency": "PLN"}}

    response = session.put(
        url=DEFAULT_API_URL + "/bidding/offers/1498090700/bid",
        json=json.dumps(payload),
        headers=headers,
    )

    print(f"{response.status_code}: {response.reason}")
    print(response.json())
© www.soinside.com 2019 - 2024. All rights reserved.