python 使用urllib2发送get请求和post请求

1.发送get请求

第一种方法,注意,有些地方误传这种方法发送的post请求,实际这是发送的get请求,urllib.urlencode明显是get请求的编码

url = 'http;//www.baidu.com'
postdata = dict('username' : 'admin', 'password':'notapass')
postdata=urllib.urlencode(postdata)
request = urllib2.Request(url, postdata)

try:
    response = urllib2.urlopen(request)
except urllib2.URLError as ex:
    import pdb; pdb.set_trace()  # Use ipdb if installed
else:
    result= response.read()
    print result

或者,手动把参数编辑在url里

url = 'http;//www.baidu.com?username=admin&password=notapass'
request = urllib2.Request(url, postdata)

try:
    response = urllib2.urlopen(request)
except urllib2.URLError as ex:
    import pdb; pdb.set_trace()  # Use ipdb if installed
else:
    result= response.read()
    print result

2.发送post请求

不同之处在于,把发送的参数使用json格式编码

url = 'http;//www.baidu.com'
postdata = dict('username' : 'admin', 'password':'notapass')
postdata = json.dumps(postdata)
request = urllib2.Request(url, postdata)
request.add_header('Content-Type','application/json')

try:
    response = urllib2.urlopen(request)
except urllib2.URLError as ex:
    import pdb; pdb.set_trace()  # Use ipdb if installed
else:
    result= response.read()
    print result

猜你喜欢

转载自blog.csdn.net/donglynn/article/details/77802103