下文主要講述如何利用python自帶的庫模擬http請求,為以後利用python做api測試做準備。
只講述模擬http的過程,具體到自己用的時候,要以自己的應用為準做出適當的調整。
#!coding:utf-8 相信這句大家都懂的,不解釋
#匯入需要的python模組httplib,用來模擬提交http請求,詳細的用法可見python幫助手冊
#匯入需要的python模組urllib,用來對資料進行編碼
import
urllib
#定義請求頭
reqheaders=
#定義post的引數
reqdata=
#對請求引數進行編碼
data=urllib.urlencode(reqdata)
#利用httplib庫模擬介面請求
#先連線到人人
#提交登入的post請求
conn.request('
post
', '
/plogin.do
', data, reqheaders)
#獲取伺服器的返回
res=conn.getresponse()
#列印伺服器返回的狀態
(res.status)
#以dictionary形式答應伺服器返回的 response header
(res.msg)
#列印伺服器返回請求頭中設定的cookie
print(res.getheader('
set-cookie'))
#以下為執行程式後的結果
302登入成功後重定向了
server: nginx/1.2.0
date: sat, 15 feb 2014 04:47:09gmt
content-length: 80connection: keep-alive
cache-control: no-cache
pragma: no-cache
expires: thu, 01 jan 1970 00:00:00gmt
location: 重定向的url
set-cookie: anonymid=hroelq3l-czxmdy; domain=.renren.com; path=/; expires=thu, 14-feb-2019 04:47:09gmt
set-cookie: _de=97fb170a42b4342d1c47a157ad77aafc1383380866d39ff5; domain=.renren.com; path=/; expires=tue, 10-feb-2015 04:47:09gmt
set-cookie: p=31991a0a194c34e606ef1263317b06372; domain=renren.com; path=/; expires=mon, 17-mar-2014 04:47:09gmt
set-cookie: ap=229996362; domain=renren.com; path=/; expires=mon, 17-mar-2014 04:47:09gmt
set-cookie: first_login_flag=1; domain=renren.com; path=/set-cookie: t=c5424876f4a3363b98b6f92e677f04bc2; domain=.renren.com; path=/set-cookie: t=a0196d1d663ad5a060ee47466123042d; domain=renren.com; path=/xtalk/set-cookie: societyguester=c5424876f4a3363b98b6f92e677f04bc2; domain=.renren.com; path=/set-cookie: id=229996362; domain=.renren.com; path=/(這個是返回的人人id)
set-cookie: xnsid=cc216a6b; domain=.renren.com; path=/(有這個就登入成功了)
set-cookie: loginfrom=syshome; domain=.renren.com; path=/
#以下就是cookie了,以後發請求,就可以帶上這個cookie
anonymid=hroelq3l-czxmdy; domain=.renren.com; path=/; expires=thu, 14-feb-2019 04:47:09 gmt, _de=97fb170a42b4342d1c47a157ad77aafc1383380866d39ff5; domain=.renren.com; path=/; expires=tue, 10-feb-2015 04:47:09 gmt, p=31991a0a194c34e606ef1263317b06372; domain=renren.com; path=/; expires=mon, 17-mar-2014 04:47:09 gmt, ap=229996362; domain=renren.com; path=/; expires=mon, 17-mar-2014 04:47:09 gmt, first_login_flag=1; domain=renren.com; path=/, t=c5424876f4a3363b98b6f92e677f04bc2; domain=.renren.com; path=/, t=a0196d1d663ad5a060ee47466123042d; domain=renren.com; path=/xtalk/, societyguester=c5424876f4a3363b98b6f92e677f04bc2; domain=.renren.com; path=/, id=229996362; domain=.renren.com; path=/, xnsid=cc216a6b; domain=.renren.com; path=/, loginfrom=syshome; domain=.renren.com; path=/
python 模擬Http請求
先簡單宣告一下http請求中post和get之間乙個簡單的區別 get請求的資料會附在url之後 就是把資料放置在http協議頭中 以?分割url和傳輸資料,引數之間以 相連,如 login.action?name hyddd password idontknow verify e4 bd a0 e...
python模擬http請求2
發現了乙個非常好用的第三方module requests,模擬介面非常簡單。詳細了解請移步 非常不錯 coding utf 8 相信這句大家都懂的,不解釋 匯入需要的requests import requests 定義請求頭 定義post的引數,requests模組,引數不用編碼 reqdata ...
Python模擬HTTP的POST請求
python版本2.7.9 模擬post請求 1 coding u8 2import urllib 3import urllib2 45 url u 6 params urllib.urlencode 78 req urllib2.request url,params 9 response urll...