實現帶cookie的HTTP的Post請求


上篇實現了獲取cookie,現在將已經獲得的cookie,在提交HTTP的Post請求時,也發送出去,即實現帶cookie的HTTP的Post請求

import cookielib,urllib,urllib2

#第一次請求URL
baiduSpaceEntryUrl='http://hi.baidu.com/motionhouse'    #百度空間URL
cj=cookielib.CookieJar()
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)
resp=urllib2.urlopen(baiduSpaceEntryUrl)

#第二次請求URL,cookiejar自動管理cookie,將得到的cookie信息發送出去
loginBaiduUrl='http://passport.baidu.com/?login'    #登陸百度空間的URL
para={
    'username':'XXXXXXXX',
    'password':'XXXXXXXX',
    'mem_pass':'on',  #勾選下次自動登陸
    }
postData=urllib.urlencode(para)
req=urllib2.Request(loginBaiduUrl,postData)  #提供請求參數后request就是Post請求,非Get請求
req.add_header('User-Agent','Mozilla/5.0 (compatible; MSIE 8.0;)')
req.add_header('Content-Type','application/x-www-form-urlencoded')  #Post請求必要條件
req.add_header('Cache-Control','no-cache')
req.add_header('Accept','*/*')
req.add_header('Connection','Keep-Alive')
resp=urllib2.urlopen(req)
respInfo=resp.info()
print respInfo

 
不要在Request里設置header,因為cookie也是header,如果設置header會導致沒有cookie,也就沒有登錄,而是將其他header信息通過add_header方法逐個添加


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM