2024-05-13 00:37:46 发布
网友
默认情况下,似乎(对我来说)每个带参数的urlopen()都会发送POST请求。如何将呼叫设置为发送GET?
urlopen()
import urllib import urllib2 params = urllib.urlencode(dict({'hello': 'there'})) urllib2.urlopen('http://httpbin.org/get', params)
urllib2.HTTPError: HTTP Error 405: METHOD NOT ALLOWED
如果要发出GET请求,则需要传递查询字符串。 你用问号'?'在你的url末尾的params之前。
import urllib import urllib2 params = urllib.urlencode(dict({'hello': 'there'})) req = urllib2.urlopen('http://httpbin.org/get/?' + params) req.read()
您可以使用与post请求大致相同的方式:
import urllib import urllib2 params = urllib.urlencode({'hello':'there', 'foo': 'bar'}) urllib2.urlopen('http://somesite.com/get?' + params)
第二个参数只应在发出POST请求时提供,例如在发送application/x-www-form-urlencoded内容类型时。
application/x-www-form-urlencoded
当提供数据参数时,HTTP请求将是POST而不是GET。 改为尝试urllib2.urlopen('http://httpbin.org/get?hello=there')。
urllib2.urlopen('http://httpbin.org/get?hello=there')
如果要发出GET请求,则需要传递查询字符串。 你用问号'?'在你的url末尾的params之前。
您可以使用与post请求大致相同的方式:
第二个参数只应在发出POST请求时提供,例如在发送
application/x-www-form-urlencoded
内容类型时。当提供数据参数时,HTTP请求将是POST而不是GET。 改为尝试
urllib2.urlopen('http://httpbin.org/get?hello=there')
。相关问题 更多 >
编程相关推荐