zoukankan      html  css  js  c++  java
  • request 发送多层字典

    a. 客户端向服务端发送多层字典的值

    #客户端发送
    	obj = {
    	    'data':{
    	        "k1":"v1",
    	        "k2":"v2"
    	    },
    	    'status': True
    	}
      
    	#json发送
        requests.post("http://www.baidu.com",json=obj)
      
        #发送数据内部默认处理(会在内部把字典obj json.dumps序列成字符串,发送给服务端)
        #body: json.dumps(obj)
        #headers= {'content-type':'application/json'}   #默认加入
      
      
    #服务端接受上面格式发送的数据
    if request.method == 'POST':
            obj = json.loads(request.body.decode('utf-8'))

    b. request.post 和request.body

    #接受
    requests.boby
    	- 请求体原生的值
    
    requests.POST   
    	- 根据特殊的请求头从requests.boby获取数据,不能接受多层字典的数据
    

    c. 三者相等

    #方式一:
    
    requests.post("http://www.baidu.com",json=obj)
    
    #方式二: 
    
    requests.post(
        url="http://www.baidu.com",
        headers={'content-type':'application/json'},
        data=json.dumps(obj)
    )
    
    #方式三():
    
    requests.post(
        url="http://www.baidu.com",
        headers={'content-type':'application/json'},
        data=bytes(json.dumps(obj),encoding="utf-8")
    )

    d. 一般使用

    requests.post(
        url="",
        data={"name":"alex","pwd":123},  #把数据解析成 data = "user=alex&pwd=123"
        headers={'content-type':'application/x-www-form-urlencoded'}
    )
    

    但不能接受多层字典的数据,接受第二层字典只能接受key,不能接受value
    #headers= {'content-type':"application/x-www-form-urlencoded

     
    requests.post(
        url="",
       json={"name":"alex"},  #会把数据解析成大的字符串
        headers={'content-type':'application/json'}
    )

      

     

  • 相关阅读:
    TinyOS功率编程指南
    深度学习入门资料
    通信常识
    CTF入门
    前端开发工具之服务器选择
    Spring
    NoSQL -- MongoDB
    NoSQL -- Redis
    mysql alter table修改表结构添加多个字段的几个写法
    gongle 访问助手安装
  • 原文地址:https://www.cnblogs.com/xuyaping/p/7750651.html
Copyright © 2011-2022 走看看