【问题标题】:Python requests PUT 400 error for missing headerPython 为缺少标头请求 PUT 400 错误
【发布时间】:2021-10-03 11:23:22
【问题描述】:

我一直致力于使用请求通过 API 上传数据。我之前已经成功完成了 GET 请求,但这是我第一次执行 PUT。这是一场战斗,进展缓慢而稳定,但我真的遇到了这个错误。

{"error":{"code":400,"message":"Bad Request. Missing header (Content-Type: application/json)"}}

似乎清楚地表明我在我的标题中缺少内容类型,但正如您在下面看到的,我确实将它包含在标题中。任何见解将不胜感激。

def api_put():
    url = 'xxxxx'
    headers = { 'Host': 'xxxxx',
                'X-Api-Key': 'xxxxx',
                'Content-Type': 'application/json'}
    payload = { 'docType': 'jts',
                'version': '1.0',
                'header' : {
                    'columns': {
                        '0': {
                            'series': 'Longitude',
                            'name': 'Longitude',
                            'dataType': 'NUMBER'},
                        '1': {
                            'series': 'Latitude',
                            'name': 'Latitude',
                            'dataType': 'NUMBER'}},
                'data': [{
                    'ts': '2021-07-26T15:36:02Z',
                    'f': { '0': {'v': 47.667196253284175},
                         '1': {'v': -122.38602397890254}}
                        }]}}
    response = requests.put(url, headers=headers, data=json.dumps(payload))
    print(response.text)

【问题讨论】:

    标签: python python-3.x python-requests put


    【解决方案1】:

    很可能是后端问题。 您是否曾尝试请求https://httpbin.org/anything 以确保您发送的是内容类型? 如果是这样,那就是代理/后端的问题。
    由于错误消息看起来后端正在通过他们自己的代码而不是使用服务器功能检查类型。您可以尝试将标题设置为小写。

    【讨论】:

    • 我不知道 httpbin.org/anything。感谢您的建议,这是一个非常有用的工具。我将与能够帮助我从后端追踪问题的人取得联系。谢谢!
    猜你喜欢
    • 2018-01-26
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-28
    • 2018-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多