【问题标题】:request.get python url-path instead of query argument passing inrequest.get python url-path而不是传入的查询参数
【发布时间】:2016-09-01 03:51:12
【问题描述】:

我正在尝试将参数传递到我的 REST API 获取请求中,如下所示:

parameters = {'key':value}

response = requests.get('some url', params= parameters)

但我使用的 API 使用 url-path 而不是查询参数。我想要这样的:

/api/resource/parametervalue

结果如下:

/api/resource?parameter=value

我已经在整个网络上进行了搜索,以查找是否可以以某种方式更改 response.get 接收的内容,但我似乎找不到。我该怎么办?

谢谢!

【问题讨论】:

    标签: python rest api get


    【解决方案1】:

    params 可选参数将在源代码here 中定义的查询字符串之前添加?

    您最好在致电requests.get 之前修改网址

    >>> parameters = ('param', 'value')
    >>> base_url = 'http://host/api/resource'
    >>> query = ''.join((parameters[0], parameters[1]))
    >>> url = '/'.join((base_url, query))
    

    所以url 变成:

    >>> url
    'http://host/api/resource/paramvalue'
    >>> response = requests.get(url)
    

    如果您在不同时间使用的同一主机中有不同的路径,您甚至可以将base_url 分解为hostpath,然后加入hostpathquery。记住join 方法只需要一个可迭代的参数。

    【讨论】:

      【解决方案2】:

      你可以这样尝试: 你需要的是一个 url /api/resource/parametervalue

      response = requests.get('some url'+'/'parameters)//url/api/resource/parametervalue it's a url
      response = requests.get('some url',params)//url/api/resource?params it't a url with params
      

      【讨论】:

      • 请补充一些解释?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-02
      • 1970-01-01
      • 2010-09-14
      相关资源
      最近更新 更多