• Python requests模块、接口


    接口类型
    http(默认端口80)
    https(默认端口443)
    webservice:通过soap协议来获取数据

    客户端 - 服务端 - 数据库
    客户端请求 与 服务端响应

    工具: F12(网页)、Fiddler、wireshark(底层)、charles(手机端)

    payload 载荷,即请求体

    通信过程:
    建立连接 - 发送请求数据 - 接收响应数据 - 断开连接
    请求数据包:
    请求行、消息头、空行、消息体
    响应数据包:
    状态行、消息头、空行、消息体

    响应状态码:
    1xx:消息响应 --表示请求已接收,继续处理
    2xx:成功响应 --表示请求已被成功接收、理解、接受
    3xx:重定向消息 --要完成请求必须进行更进一步的操作
    4xx:客户端错误响应 --请求有语法错误或请求无法实现
    5xx:服务端错误响应 --服务器未能实现合法的请求
    https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status

    3次握手、4次挥手

    Cookie/Token:客户端和服务端之间的授权机制
    Session:服务端和数据库之间的授权机制

    客户端提交信息给服务端,服务端生成一个cookies返回给客户端,也会把这个cookies保存在数据库
    数量多会造成数据库超负荷
    客户端提交信息给服务端,服务端生成一个token返回给客户端,token不会保存在数据库

    如果要传输非常大的文件作为multipart/form-data请求,可以使用requests-toolbelt包


    url = 'http://www.xxxxxx.com'
    req_headers = {}
    req_data = {}

    # get请求,不带参数
    res1 = requests.get(url)
    # get请求,带参数
    requests.get(url, params={'key1':'value1', 'key2':'value2'}) # 相当于http://www.xxxxxx.com?key1=value1&key2=value2
    # post请求
    res2 = requests.post(url, data=req_data, headers=req_headers)
    # 请求数据为json格式时,json=data
    res3 = requests.post(url, json=req_data, headers=req_headers)

    # 获取响应状态码
    print(resp.status_code)
    # 获取响应头
    print(resp.headers)
    # 获取响应体 - 字符串
    print(resp.text)
    # 获取响应体 - 字符串转成字典
    print(resp.json)
  • 相关阅读:
    MySQL中的InnoDB中产生的死锁深究
    MySQL中的触发器应用
    你除了在客户端上会使用Cookie,还能使用哪些可以作为数据缓存呢?
    js中实现输入框类似百度搜索的智能提示效果
    linux系统中启动mysql方式已经客户端如和连接mysql服务器
    linux系统安装mysql数据库
    Linux中实用的命令
    Linux下安装jdk中遇到的坑
    Git初始化配置以及配置github
    springboot中配置文件使用2
  • 原文地址:https://www.cnblogs.com/sue2015/p/16085773.html
Copyright © 2020-2023  润新知