一、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) # set header
token = localReadConfig.get_headers("token_v")
header = {"token": token}
localConfigHttp.set_headers(header) # set param
data = {"email": localLogin_xls[0][3],
"password": localLogin_xls[0][4]}
localConfigHttp.set_data(data) # login
response = localConfigHttp.post().json()
token = common.get_value_from_return_json(response, "member", "token")
return token

保持登录的接口请求,就获取cookie然后传到头部header里面去,token传到body里面去,然后就可以发布成功了。

requests保持登录session ,cookie 和 token的更多相关文章

  1. 步步为营-76-用户登录(Session+Cookie)

    说明:cookie是保存在浏览器的.Session是存储在服务器的 1 同样UI页面还是web前端提供 1.1 首先,经过验证码校验:将系统产生的验证码放入到Session中,然后取Session值注 ...

  2. web登录的session、cookie和token

    为什么会有登录这回事 首先这是因为HTTP是无状态的协议,所谓无状态就是在两次请求之间服务器并不会保存任何的数据,相当于你和一个人说一句话之后他就把你忘掉了.所以,登录就是用某种方法让服务器在多次请求 ...

  3. 授权认证登录之 Cookie、Session、Token、JWT 详解

    一.先了解几个基础概念 什么是认证(Authentication) 通俗地讲就是验证当前用户的身份. 互联网中的认证: 用户名密码登录 邮箱发送登录链接 手机号接收验证码 只要你能收到邮箱/验证码,就 ...

  4. 【转】Session Cookie Token的区别

    Cookie cookie 是一个非常具体的东西,指的就是浏览器里面能永久存储的一种数据,仅仅是浏览器实现的一种数据存储功能. cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保 ...

  5. session 、cookie、token的区别

    session session的中文翻译是“会话”,当用户打开某个web应用时,便与web服务器产生一次session.服务器使用session把用户的信息临时保存在了服务器上,用户离开网站后sess ...

  6. 什么是Http无状态?Session、Cookie、Token三者之间的区别

    一.什么是HTTP无状态? 1.1定义: HTTP无状态协议,是指协议对于交互性场景没有记忆能力. 1.2举个例子: 在点击一个纯的html网页,请求获取服务器的html文件资源时,每次http请求都 ...

  7. 彻底弄懂session,cookie,token

    session,cookie和token究竟是什么 简述 我在写之前看了很多篇session,cookie的文章,有的人说先有了cookie,后有了session.也有人说先有session,后有co ...

  8. Cookie && Session && Token

    Cookies Cookie的由来: HTTP 本身是一个无状态的 request/response 协议. server接收一个来自client的request, 处理完以后返回一个response ...

  9. Cookie、Token与Session介绍(非原创)

    文章大纲 一.Cookie介绍二.Token介绍三.Session介绍四.Token.Cookie与Session比较五.参考文章   一.Cookie介绍 1. Cookie是什么 cookie机制 ...

随机推荐

  1. Confluence 6 修改空间名字和标识

    希望修改空间名称: 在空间名称的边上,选择  图标. 输入新的空间名称,然后单击 保存(Save). 标识(Logo )- 修改空间的名称和标识. 重新组织(Reorder) - 拖动来从新组织快捷链 ...

  2. Confluence 6 配置边栏

    如果你具有空间的管理员权限,你可以对空间的变量进行自定义,让你的空间具有自己的空间标识(logo),修改显示的继承关系和在空间中添加快捷方式以帮助用户在空间中进行快速导航. 希望开始配置空间边栏,选择 ...

  3. php求取时间范围并传入数据库,页面上显示几天几月几年

    $startTime = $_GPC['h_time']['start']; $endTime = $_GPC['h_time']['end']; echo $startTime.'<hr> ...

  4. 小程序中this和that用法

    微信小程序中,在wx.request({});方法调用成功或者失败之后,有时候会需要获取页面初始化数据data的情况,这个时候,如果使用,this.data来获取,会出现获取不到的情况,调试页面也会报 ...

  5. Linux系统中文件定位与查找

    Linux系统中文件查找 关键词 文件查找 | find | locate 本文主要介绍有关文件查找的两个命令——find和locate,以及压缩打包的命令——compress, gzip,bzip2 ...

  6. New Year and Old Subsequence CodeForces - 750E (dp矩阵优化)

    大意: 给定字符串, 每次询问区间[l,r]有子序列2017, 无子序列2016所需要删除的最小字符数 转移用矩阵优化一下, 要注意$(\mathbb{Z},min,+)$的幺元主对角线全0, 其余全 ...

  7. linux导出sql数据

    1. 导出数据库的数据 在linux命令行下输入 mysqldump -u userName -p  dabaseName  > fileName.sql 在linux命令行下输入 2. 导出表 ...

  8. org.json.JSONException: JSONObject["shophours"] not found.

    没有这个元素造成的.问题代码: value = jsonObject.get(entry).toString(); 分析原因: json中没有这个key,更没有这个key所对应的值 解决办法:判断一下 ...

  9. 【转】JS常用函数整合库 lutils

    lutils 此工具包是在 outils 的基础上,加上个人平时收集的代码片段进行的二次整合 outils的GitHub:https://github.com/proYang/outils/blob/ ...

  10. linux重命名所有find查找到的文件/文件夹

    一.说明 在某些时候我们想要将所有find命令查找到的文件或文件夹全都重命名,比如都加上.bak后辍 二.操作命令 find /dir -name "*pattern*" -exe ...