“标题”:“不支持的媒体类型”,“状态”:从 python 请求 API 时出现 415 错误

Posted

技术标签:

【中文标题】“标题”:“不支持的媒体类型”,“状态”:从 python 请求 API 时出现 415 错误【英文标题】:"title":"Unsupported Media Type","status":415 error when request API from python 【发布时间】:2021-08-23 03:51:47 【问题描述】:

为什么当我将它与 react 和 java android 一起使用时相同的 api API 我没有收到错误 415 但是当我使用 python 请求时我收到一个错误:“title”:“Unsupported Media Type”,“status” :415

    URL = "http://localhost:44327/api/UserOfficial/UserOfficialAuthenticate"
    def Login():
    data = 
        'username': 'hienkieu',
        'password': '197353995'
    
    length = len(json.dumps(data))
    hearder = 
        'accept': 'application/json',
        'content-Type' : 'application/json',
        'content-Length': length
    
    r = requests.post(URL, data, hearder)
    return r.text

【问题讨论】:

【参考方案1】:

请尝试这样做。

URL = "http://localhost:44327/api/UserOfficial/UserOfficialAuthenticate"
def Login():
    data = 
        'sername': 'hienkieu',
        'password': '197353995'
    
    data = json.dumps(data) # <<<<<<<<<////////////// Edit is here
    length = len(json.dumps(data))
    hearder = 
        'accept': 'application/json',
        'content-Type' : 'application/json',
        'host': '104.154.118.39',
        'content-Length': length
    
    r = requests.post(URL, data, hearder)
    return r.text

【讨论】:

您正在使用 Django_rest_framework API 吗?或者您正在使用简单的 API? 我使用简单的 API。我的 Android 应用和 Frontend react 仍然正常使用 尝试从您的请求中删除标头...它应该可以工作。在我看来,没有必要传递这些标头 我听从了你的建议。但是还是不行。 一个最大的解决方案,使用 django_rest_framework。

以上是关于“标题”:“不支持的媒体类型”,“状态”:从 python 请求 API 时出现 415 错误的主要内容,如果未能解决你的问题,请参考以下文章

Angular/Keycloak:415 不支持的媒体类型

Spring MVC 415 不支持的媒体类型

从 PL/SQL 调用 Web 服务时得到不支持的媒体类型

415 不支持的媒体类型 asp.net 核心

Django/React 415(不支持的媒体类型)

不支持的媒体类型 ASP.NET Core Web API