• requests模块


    1:
    r = requests.post(url="http://127.0.0.1:8000/test/",

    data={'k':'k1'}
    )
    #请求头application/x-www-form-urlencoded ----> 用request.POST.get('k')接收数据

    2: json数据的话,requests内部会自动帮助序列化数据---> json.dumps() --> 转换成unicode
    r = requests.post(url="http://127.0.0.1:8000/test/",
    json={'k':'k1'}
    )
    #请求头application/json ---> 用request.body获取数据

    3: #json={'k':'中间'} 其实会在内部序列化之后的字符串传递给data
    r = requests.post(url="http://127.0.0.1:8000/test/",
    json={'k':'中间'}
    )
    #请求头application/json ---> 用request.body获取数据 ---> json.loads(数据)

    4: #涉及到中文的时候需要字符转转成bytes,内部会检测,发现如果是bytes; requests 就不处理字节了,直接发送数据
    r = requests.post(url="http://127.0.0.1:8000/test/",
    data=bytes(json.dumps({'k':'中间'},ensure_ascii=False),encoding="utf-8")
    )
    #请求头application/json ---> 用request.body获取数据 ---> 数据.decode("utf-8") 回来

    5:
    浏览器请求内容:
      FromData:
        r = requests.post(url="http://127.0.0.1:8000/test/",
            data={'k':'k1'}
                      )


      Payload:
       r = requests.post(url="http://127.0.0.1:8000/test/",
                      json={'k':'k1'}
    )
      #json内容中文的话:
        
              r = requests.post(url="http://127.0.0.1:8000/test/",
                          data=bytes(json.dumps({'k':'中间'},ensure_ascii=False),encoding="utf-8") 
    )
    6:补充JSON内容
    data = {
    'k1':'k1',
    'k2':'可以'
    }
    print(json.dumps(data)) #{"k1": "k1", "k2": "u53efu4ee5"}     unicode编码了


    data1 = {
    'k1':'k1',
    'k2':'可以'
    }
    print(json.dumps(data1,ensure_ascii=False)) #{"k1": "k1", "k2": "可以"}


  • 相关阅读:
    01Servlet执行流程
    Tomcat配置虚拟主机
    Mac node 版本升级
    【微信小程序】【Demo】获取页面元素宽高,按相对百分比计算页面其他元素应设置宽度的像素数值。
    VM12解决出现与HyperV不兼容
    记录安装IDA插件Bindiff的坑
    C++ 正逆序迭代器
    智能指针虚析构函数基类指针访问子类方法
    编程最顶的八句格言
    visual studio C/C++ 创建使用动态库
  • 原文地址:https://www.cnblogs.com/ajaxa/p/11024015.html
Copyright © 2020-2023  润新知