【问题标题】:How to set GET parameters with PyCurl?如何使用 PyCurl 设置 GET 参数?
【发布时间】:2011-07-17 18:22:43
【问题描述】:

我正在尝试使用 PycURL 对 REST api 发出 GET 请求。如果我不传递任何参数,我能够成功发出请求。我还可以通过执行以下操作来发出 POST 请求:

curl.setopt(pycurl.POSTFIELDS, post_data)

我想发出一个包含登录参数的获取请求。如果我尝试使用上面的行来传递参数,它会尝试进行 POST。我不知道如何设置登录参数并发出 GET 请求。

任何帮助将不胜感激。

【问题讨论】:

    标签: python rest get pycurl


    【解决方案1】:

    似乎没有 pycurl.GETFIELDS 选项,因此您必须在 url 中传递这些参数,如下所示:

    http://your_url/some_path?param1=value1&param2=value2
    

    您应该将 param1、param2、value1 和 value2 替换为您存储在 post_data 中的任何值。

    【讨论】:

      【解决方案2】:

      就像浏览器上的普通 URL 一样,GET 参数被编码并在? 之后附加到 URL。使用python的urllib.urlencode,你可以这样做:

      import urllib
      import pycurl
      
      url = 'http://www.google.com/search'
      params = {'q': 'stackoverflow answers'}
      
      c = pycurl.Curl()
      c.setopt(c.URL, url + '?' + urllib.urlencode(params))
      ... # and so on and so forth ...
      

      【讨论】:

      • 除此答案外,您还可以添加 HTTPGET 选项。 c.setopt(pycurl.HTTPGET, 1)
      • 您可能需要在 python 3 中导入 urllib.parse 然后 urllib.parse.urlencode(params)
      猜你喜欢
      • 2019-10-25
      • 2020-03-11
      • 1970-01-01
      • 1970-01-01
      • 2011-09-01
      • 2019-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多