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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章