request取值相关

发送数据格式与对应接收方法

方式一:
    request.post(
        url='xx',
        data={'k1':'v1,'k2':'v2'}
    )
    #数据:  POST /  http1.1\r\nContent-type:urlencode-form.......\r\n\r\nk1=v1&k2=v2

    
    request.POST必然可以获取到值。
        - content-type: urlencode-form
        - 数据格式:k1=v1&k2=v2

方式二:
    request.post(
        url='xx',
        json={'k1':'v1,'k2':'v2'}
    )
    #数据:  POST /  http1.1\r\nContent-type:application/json....\r\n\r\n{'k1':'v1,'k2':'v2'}
    request.body取到的数据是字节格式的,需要转化为字符串,然后进行反序列化就能拿到子弹
        字节 = {'k1':'v1,'k2':'v2'}
        字节转换字符串
        反序列化字符串 -> 字典 
    
    request.POST必然不可以获取到值的情况:
        - content-type: urlencode-form
        - 数据格式:k1=v1&k2=v2

 知识点:

在chrome中如果看到的数据是Form Data ,那么它的数据是如下格式构造出来的
    Form Data:
        phone=861513125555&password=12312312312&oneMonth=1
        
        进行数据伪造的时候:
        reqeusts.post(
            url=url,
            data={
                phone:123123123123,
                password:asdfasdf
            }
        )
    
    如果看到的数据为Request Payload:
        {"BaseRequest":{"Uin":981579400,"Sid":"zWvteTWqBop4heoT","Skey":"@crypt_2ccf8ab9_a710cf413c932e201987599558063c8e","DeviceID":"e358217921593270"},"Msg":{"Type":1,"Content":"test","FromUserName":"@60eef3f2d212721fda0aae891115aa7a","ToUserName":"@@6a5403f510a3192454ed1afebd78ec6033d5057c9038d7b943b201f0a74987d4","LocalID":"15300708105840758","ClientMsgId":"15300708105840758"},"Scene":0}
    
        进行数据伪造的时候:
        reqeusts.post(
            url=url,
            json={
                phone:123123123123,
                password:asdfasdf
            }
        )
        
        或者:
        reqeusts.post(
            url=url,
            data=bytes(json.dumps({
                phone:123123123123,
                password:asdfasdf
            }),encoding=utf-8)
        )

发送的数据与对应发过去的格式:

data:
    request.post(
        url='xx',
        data={'k1':'v1,'k2':'v2'}
    )
    #数据:  POST /  http1.1\r\n....\r\n\r\nk1=v1&k2=v2
    
    
    request.post(
        url='xx',
        data=json.dumps({'k1':'v1,'k2':'v2'})
    )
    #数据:  POST /  http1.1\r\n....\r\n\r\n{'k1':'v1,'k2':'v2'}
    
    request.post(
        url='xx',
        data=b'asdfasdf'
    )
    #数据:  POST /  http1.1\r\n....\r\n\r\n'asdfasdf'
json:
    request.post(
        url='xx',
        json={'k1':'v1,'k2':'v2'}
    )
    #数据:  POST /  http1.1\r\nContent-type:application/json....\r\n\r\n{'k1':'v1,'k2':'v2'}

 

posted @ 2020-07-12 13:45  zh_小猿  阅读(261)  评论(0编辑  收藏  举报