• requests库的简单使用


    import requests
    
    rsp = requests.get('https://www.baidu.com')
    
    
    print(rsp.text)  # 字符串
    print(rsp.content)  # bytes,字节。 == 二进制
    
    # print(rsp.json())  # 字典格式,当返回是字典格式时可用

     设置请求方法:

    import requests
    
    # 常用的requests的请求方法
    
    resp = requests.get('http://httpbin.org/get')
    
    resp = requests.post('http://httpbin.org/get')
    
    resp = requests.put('http://httpbin.org/get')
    
    resp = requests.delete('http://httpbin.org/get')
    
    
    # 自动化测试
    
    method = 'post'
    # 通用的方法1
    if method == 'get':
        requests.get('http://httpbin.org/get')
    elif method =='post':
        requests.post('http://httpbin.org/get')
    
    # 通用的方法2
    func_name = getattr(requests, method)
    resp = func_name('http://httpbin.org/get')
    
    # 通用的方法3
    requests.request(method, 'http://httpbin.org/get')
    
    print(resp)

    设置请求头:

    import requests
    
    url = 'https://www.httpbin.org/get'
    headers = {"xxx": "123", "yyy": "456", "User-Agent": "aaa"}
    # get
    # 添加请求头,使用字典存储自定义的请求头
    resp = requests.request('get', url=url, headers=headers)
    print(resp.text)
    
    # 自定义请求头,直接将请求头保存到字典当中,通过headers 关键字参数传递

    设置请求参数:

    import requests
    
    url = 'http://httpbin.org/post'
    
    # get请求
    # 1. 请求头传输
    
    # 2. URL参数,query_string,查询字符串
    # url = f"{url}?username=qq&pwd=123"
    # resp = requests.request('get', url)
    # print(resp)
    
    # 3. URL参数 方法2:params 关键字参数就是设置URL参数的
    params = {"username": "qq","pwd": "123"}
    resp = requests.request('get', url, params=params)
    # print(resp.text)
    
    # 4. form-data, 存在字典中,通过data关键字参数传递
    data = {"username": "qq", "pwd": "123"}
    resp = requests.request('post', url, data=data)
    # print(resp.text)
    
    # 5. 支持form-data, query string, header 同时传递
    
    # 6. json数据
    data = {"username": "qq", "pwd": "123"}
    resp = requests.request('post', url, json=data)
    print(resp.text)
    
    # 7. 不能同时传递json和form-data,因为它们都是请求体

    设置响应的格式:

    import requests
    import json
    
    url = 'http://httpbin.org/post'
    
    resp = requests.request('post', url)
    
    # print(resp.text)  # str
    # print(resp.content)  # bytes
    # print(resp.json())  # dict
    
    # text, content, json()  格式转化
    #  text ==》编码 content
    
    new_content = resp.text.encode()
    print(new_content)
    # content ==》解码 text
    new_text = resp.content.decode()
    print(new_text)
    
    # text ==>字典  eval()  这种方法不安全,"sudo rm -rf /" 假如有这种代码,容易误操作
    # 字典 ===》text  使用''
    
    # eval 本质:转化为可以执行的python代码
    # text ===》特定的格式,json  是字符串,内容是键值对的字符串,键必须使用双引号,布尔值使用小写的true和false
    # 在json中null == python中的None,不支持圆括号()
    """
    {"key": "value", "key1": [1, 2, 3], "key2": true, "key3": {}}
    """
    
    # JSON 转化成python字典
    json_data = '{"key": "value", "key1": [1,2,3], "key2": true, "key3": null}'
    
    # JSON===>dict ,反序列化
    dict_data = json.loads(json_data)
    print(dict_data)  # 其中key2和key3会打印首字母大写的True和None
    
    # dict ==> json 的数据格式。序列化
    json_new_data = json.dumps(dict_data)
    print(json_new_data)
    
    # 序列化和反序列化面试问题
    # 序列化:編程语言的数据类型转化成通用的数据格式,文本和二边制。String
    # 反序列化: 通用的数据格式转成编程语言的数据类型.

     token的处理:

    """
    操作思路:
    1, 登录,得到登录接口返回的token值,包含tokenyype,bearer
    2, 再访问其他接口时,带上token值
    3,token放在请求的什么位置,一般由接口开发者定义
    4,标准的规范是放在Authorization 的请求头中,通常会设置一个前缀
    Bearer, JWT
    Authorization: Bearer token值
    """
    
    import requests
    
    url = 'http://api.lemonban.com:8766/futureloan/member/login'
    headers = {"X-Lemonban-Media-Type": "lemonban.v2", "Content-Type": "application/json"}
    data = {
        "mobile_phone": "",
        "pwd": ""
    }
    resp = requests.post(url,headers=headers, json=data)
    print(resp.text)
    
    # 得到token
    json_resp = resp.json()
    print(json_resp["data"]["token_info"]["token"])
  • 相关阅读:
    20171012
    BZOJ[2563] 阿狸和桃子的游戏
    BZOJ[1028] [JSOI2007]麻将
    BZOJ[1972] [Sdoi2010]猪国杀
    BZOJ[1033] [ZJOI2008] 杀蚂蚁antbuster
    P5651 基础最短路练习题
    P3047 [USACO12FEB]Nearby Cows G
    P6190 魔法
    P2391 白雪皑皑 / BZOJ 2054 疯狂的馒头
    CSP 2020 J/S 初赛游记
  • 原文地址:https://www.cnblogs.com/wsfsd/p/15420591.html
Copyright © 2020-2023  润新知