python使用get请求发送header带session信息

我们在请求有些网站的数据接口时需要携带session才能请求成功,之前用php写过一个,参考这个里https://sulao.cn/post/547.html

现在用flask框架写工具也需要这个功能,顺利写了个记录下来

登录并保存session_id的方法

import  requests

#保存session_id
def saveSessionId(username, password):
url = "http://sulao.cn/login"
json_vaule = {
        "name" : username,
        "password" : hashlib.md5(password.encode(encoding='utf-8')).hexdigest()
}
response = requests.post(url, data=json.dumps(json_vaule))
json_response = response.json()
return json_response["session_id"]

然后就是我取数据接口数据的方法

from flask import Flask,render_template,request,jsonify
import  urllib.request as rq
import json
app = Flask(__name__)

@app.route('/show', methods=['POST','GET'])
def show():
    if request.method == 'POST':
        username = request.form.get('user')
        password = request.form.get('pass')
        cid = saveSessionId(username, password)
        cid = str(cid)
        url = "http://sulao.cn/api"
        header = {
            'session_id':cid
        }
        response = rq.Request(url, headers=header)
        response = rq.urlopen(response)
        response = response.read()
        response = response.decode('utf-8')
        return response
    return render_template('view/show.html')

使用Request对象发送请求时就可以携带一个headers,这里就可以将你的session信息放进去,是字典类型的结构

注意了发送POST请求携带session是另一种写法,过两天再更新上来

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/553.html