Api_處理接口依賴(登錄狀態(tài))

Paste_Image.png
  • 處理接口依賴

  • 在做接口的過(guò)程中基公,處理接口間的依賴很常見(jiàn)轰豆,這里要說(shuō)的是處理下個(gè)接口依賴登錄狀態(tài)的情況:

例:
分析問(wèn)題:
接口B調(diào)用的前提條件是當(dāng)前用戶必須是登錄狀態(tài)齿诞,而用戶登錄是由接口A完成的祷杈,所以我們要做的就是在調(diào)用接口B之前需要先調(diào)用接口A,并且獲得用戶的登錄狀態(tài)宿刮,就我現(xiàn)在公司來(lái)說(shuō)僵缺,服務(wù)端校驗(yàn)登錄狀態(tài)是根據(jù)當(dāng)前用戶的{_identity,PHPSESSID,user_type} 的key和value值決定的踩叭,換句話說(shuō)就是服務(wù)端只要找到這3個(gè)key的值就認(rèn)為當(dāng)前用戶處于登錄狀態(tài)容贝,只需要在請(qǐng)求接口的時(shí)候在Header中加入這些就可以了。
解決問(wèn)題:既然知道了冤今,原理就開(kāi)始吧戏罢。

  • 首先要想辦法獲取調(diào)用接口A時(shí)龟糕,服務(wù)端植入的cookie悔耘,從而找到{_identity,PHPSESSID,user_type} 的key和value值;

     import urllib, urllib2, cookielib
     #域名
     main_domain =http://www.baidu.com
     #傳遞參數(shù)
     parameter={"r": "A", "phone": "13111111117", "passcode": "1234", "user_type": "100"}
     def getCookie(cls, parameter): 
     u'獲取cookie內(nèi)容'      
         #解析傳參
         params = urllib.urlencode(parameter)    
         #拼裝get方法的url
         url = main_domain+'/index.php?'+params    
         #調(diào)用cookielib函數(shù)校摩,獲取cookie
         cookie = cookielib.CookieJar()    
         handle = urllib2.HTTPCookieProcessor(cookie)    
         opener = urllib2.build_opener(handle)    
         opener.open(url)        
          print "cookie"+str(cookie)
         #定義一個(gè)空字符串d衙吩,下邊要用到
         d = ""    
         #通過(guò)該方法獲取cookie中的key溪窒、value
         for item in cookie:        
             name = item.name        
             value = item.value 
             #拼裝成固定格式 key = value       
             dic = name + "=" + value        
             #拼裝字符串
             d = dic+";"+d       
    
          log.debug(u'輸出cookie:' + str(d))    
          #生成Header字典
          dic1 = {"Cookie": d}    
          print "dic1="+str(dic1)
    

    輸入結(jié)果:

    cookie:PHPSESSID=rbeijkuu2e17b3i5j8gj81sim0;user_type=100;_identity=30adfe321230af6cf67c4b55f456c38ec9977a163b1dfeb20b3a928e767f0419a%3A2%3A%7Bi%3A0%3Bs%3A9%3A%22_identity%22%3Bi%3A1%3Bs%3A21%3A%22%5B488696%2Ctrue%2C2592000%5D%22%3B%7D;
    

    dic1={Cookie:PHPSESSID=rbeijkuu2e17b3i5j8gj81sim0;user_type=100;_identity=30adfe321230af6cf67c4b55f456c38ec9977a163b1dfeb20b3a928e767f0419a%3A2%3A%7Bi%3A0%3Bs%3A9%3A%22_identity%22%3Bi%3A1%3Bs%3A21%3A%22%5B488696%2Ctrue%2C2592000%5D%22%3B%7D;}

  • 注意:在添加Header的時(shí)候最好去瀏覽器中看一下接口Header的格式摹芙,
    請(qǐng)求格式.png
    比如我這里的Request Header格式為:Cookie:key=value;key1=value 浮禾,顯而易見(jiàn)這是字典的格式坛悉,這樣看就更明顯了{(lán)Cookie:key=value;key1=value} 所以我在拿到cookie的value的以后裸影,又將他們組裝成為指定格式的字典,這點(diǎn)很重要>戆纭(我在這掉坑里面了)
  • 接下來(lái)就是將Header中加入指定k和v

      parameter = {"r": "B", "demand_id": '2938'}
     def getInterface( parameter=None, headers={}):   
      u'''    parameter = {"r": "demand/info", "demand_id": '2938'}格式    '''    
        #獲取請(qǐng)求url     
        get_url = main_domain+'/index.php?'   
       #解析請(qǐng)求參數(shù)    
       params = urllib.urlencode(parameter)     
       send_url = get_url + params    
       #訪問(wèn)接口    
       req = urllib2.Request(send_url, headers=headers)    
       #打印請(qǐng)求日志:    
       httpHandler = urllib2.HTTPHandler(debuglevel=1)    
       httpsHandler = urllib2.HTTPSHandler(debuglevel=1)    
       opener = urllib2.build_opener(httpHandler, httpsHandler)    
       urllib2.install_opener(opener)    
       #讀取返回值    
       response = urllib2.urlopen(req).read()    
       #以json格式讀取    
       jresult = json.loads(response)    
       print response    
       print  jresult
    

調(diào)用:
getInterface(parameter=parameter,headers=dic1)

  • 完成

@晴天-2016-08-30 20:59:46 (后補(bǔ))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市彤委,隨后出現(xiàn)的幾起案子焦影,更是在濱河造成了極大的恐慌,老刑警劉巖舶担,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件衣陶,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡教沾,警方通過(guò)查閱死者的電腦和手機(jī)拯欧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)镐作,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)该贾,“玉大人捌臊,你說(shuō)我怎么就攤上這事〕蚜Γ” “怎么了糠爬?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵执隧,是天一觀的道長(zhǎng)镀琉。 經(jīng)常有香客問(wèn)我,道長(zhǎng)烁设,這世上最難降的妖魔是什么钓试? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任亚侠,我火速辦了婚禮,結(jié)果婚禮上箕别,老公的妹妹穿的比我還像新娘。我一直安慰自己除抛,他們只是感情好母截,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布清寇。 她就那樣靜靜地躺著华烟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪负饲。 梳的紋絲不亂的頭發(fā)上喂链,一...
    開(kāi)封第一講書(shū)人閱讀 51,365評(píng)論 1 302
  • 那天椭微,我揣著相機(jī)與錄音,去河邊找鬼检诗。 笑死瓢剿,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的攻泼。 我是一名探鬼主播忙菠,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼纺弊,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了傍睹?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤吮炕,失蹤者是張志新(化名)和其女友劉穎访得,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體悍抑,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年迎膜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了浆兰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片珊豹。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡店茶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出轿腺,到底是詐尸還是另有隱情丛楚,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布仿荆,位于F島的核電站拢操,受9級(jí)特大地震影響舶替,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜顾瞪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望栖茉。 院中可真熱鬧,春花似錦亲配、人聲如沸惶凝。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)混滔。三九已至,卻和暖如春油湖,著一層夾襖步出監(jiān)牢的瞬間领跛,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工喊括, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留郑什,地道東北人幻妓。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像强胰,于是被迫代替她去往敵國(guó)和親妹沙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理玄窝,服務(wù)發(fā)現(xiàn),斷路器帽氓,智...
    卡卡羅2017閱讀 134,654評(píng)論 18 139
  • urllib2是Python的一個(gè)獲取URLs的組件黎休。他以u(píng)rlopen函數(shù)的形式提供了一個(gè)非常簡(jiǎn)單的接口,具有利...
    查無(wú)此人asdasd閱讀 1,501評(píng)論 0 3
  • 一势腮、概述 urllib2是Python的一個(gè)針對(duì)URLs的庫(kù)漫仆。他以u(píng)rlopen函數(shù)的形式提供了一個(gè)非常簡(jiǎn)單的...
    MiracleJQ閱讀 1,488評(píng)論 0 5
  • 雙休加班熬夜.昨晚上一回家就睡盲厌,睡到一點(diǎn)多鐘醒來(lái)睡不著了,于是在看完一本小說(shuō)藤树,又玩了會(huì)手機(jī)拓萌,到早上三點(diǎn)多才睡著微王。早...
    順順噠閱讀 349評(píng)論 0 0
  • 2016.7.18. 周一 連軸轉(zhuǎn)地度過(guò)了三個(gè)星期的培訓(xùn)考試品嚣,終于開(kāi)始正常生活。會(huì)計(jì)的錙銖必較得以暫時(shí)解脫罩旋,回歸做...
    查拉閱讀 83評(píng)論 0 0