【问题标题】:Uber API - requests endpoint cannot read read jsonUber API - 请求端点无法读取读取 json
【发布时间】:2015-06-27 10:25:04
【问题描述】:

我正在尝试在以下 python 代码中为 requests 端点生成一个 POST 请求:

import requests
...
response = requests.post(
'https://sandbox-api.uber.com/v1/requests',
headers = {
    'Authorization': 'Bearer %s' % access_token,
    'Content-Type': 'application/json'
},
params={"start_latitude":"37.334381","start_longitude":"-121.89432","end_latitude":"37.77703","end_longitude":"-122.419571","product_id":"a1111c8c-c720-46c3-8534-2fcdd730040d"})
data = response.json()

access_token 是在授权期间使用请求范围获得的。响应json是: {"message": "无法解析请求正文中的 JSON。", "code": "invalid_json"}

在正确格式化请求方面需要帮助。谢谢。

【问题讨论】:

    标签: python-requests uber-api


    【解决方案1】:

    找出问题所在 - 必须将 params 字段替换为数据字段,并在发送前用 json.dumps() 包装 dict。

    【讨论】:

    • 您介意更明确地说明这意味着什么吗?不是 Python 程序员,但在尝试从 Cocoa Rest Client 访问 Uber 的 API 时遇到了同样的问题。
    • 将 params={} 替换为 data=json.dumps({})
    • 哦,所以您需要解码 JSON 并将其添加到请求的正文中。我觉得 Cocoa Rest Client 应该自动执行此操作。不知道什么不适合我...
    • @Awesome-o 你知道如何在 Rest Client 中发布参数了吗?
    • @Jagdeep 我只能在请求 URL 中包含请求参数以使 api 工作。据我所知,在请求正文中将请求参数作为 JSON 似乎不起作用。
    猜你喜欢
    • 1970-01-01
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-18
    • 1970-01-01
    相关资源
    最近更新 更多