requests保持登錄session ,cookie 和 token


一、request提供了一個一個叫做session的類,來實現客戶端和服務端的會話保持

復制代碼
# coding:utf-8
import requests
url = "https://passport.cnblogs.com/user/signin"

headers = {
頭部信息已省略

               }

payload = {"input1":"xxx",
"input2":"xxx",
"remember":True}

s = requests.session()
r
= s.post(url, json=payload, headers=headers,verify=False)
print r.json()

復制代碼

二、獲取登錄后的cookie 和 token

請求成功之后獲取cookies,然后吧cookies存到固定配置文件里面

復制代碼
    def post(self):
        try:
            r = requests.post(self.url, headers=self.headers, params=self.params, data=self.data, timeout=float(timeout))
            # response.raise_for_status()
            result =decodeToBase64(r.content)
            response = json.loads(result)
            cookies = r.cookies.get_dict()   #  獲取登錄之后 cookie
            localReadConfig.set_headers("cookies", str(cookies))   #把cookie存到配置文件里面去
            return response
        except TimeoutError:
            self.logger.error("Time out!")
            return None
復制代碼

獲取登錄后的token

復制代碼
def login():
    """
    login
    :return: token
    """
    # set url
    url = common.get_url_from_xml('login')
    localConfigHttp.set_url(url)
</span><span style="color: #008000;">#</span><span style="color: #008000;"> set header</span>
token = localReadConfig.get_headers(<span style="color: #800000;">"</span><span style="color: #800000;">token_v</span><span style="color: #800000;">"</span><span style="color: #000000;">)
header </span>= {<span style="color: #800000;">"</span><span style="color: #800000;">token</span><span style="color: #800000;">"</span><span style="color: #000000;">: token}
localConfigHttp.set_headers(header)

</span><span style="color: #008000;">#</span><span style="color: #008000;"> set param</span>
data = {<span style="color: #800000;">"</span><span style="color: #800000;">email</span><span style="color: #800000;">"</span>: localLogin_xls[0][3<span style="color: #000000;">],
        </span><span style="color: #800000;">"</span><span style="color: #800000;">password</span><span style="color: #800000;">"</span>: localLogin_xls[0][4<span style="color: #000000;">]}
localConfigHttp.set_data(data)

</span><span style="color: #008000;">#</span><span style="color: #008000;"> login</span>
response =<span style="color: #000000;"> localConfigHttp.post().json()
token </span>= common.get_value_from_return_json(response, <span style="color: #800000;">"</span><span style="color: #800000;">member</span><span style="color: #800000;">"</span>, <span style="color: #800000;">"</span><span style="color: #800000;">token</span><span style="color: #800000;">"</span><span style="color: #000000;">)
</span><span style="color: #0000ff;">return</span> token</pre>
復制代碼

保持登錄的接口請求,就獲取cookie然后傳到頭部header里面去,token傳到body里面去,然后就可以發布成功了。


免責聲明!

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



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