web请求相关
Posted 超级英雄拯救世界之前成长的日子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web请求相关相关的知识,希望对你有一定的参考价值。
请求数据类型
data
request.post( url=‘xx‘, data={‘k1‘:‘v1,‘k2‘:‘v2‘} ) #数据: POST / http1.1 .... k1=v1&k2=v2
request.post( url=‘xx‘, data=json.dumps({‘k1‘:‘v1,‘k2‘:‘v2‘}) )
#数据: POST / http1.1 .... {‘k1‘:‘v1,‘k2‘:‘v2‘}
字节
request.post( url=‘xx‘, data=b‘asdfasdf‘ ) #数据: POST / http1.1 .... ‘asdfasdf‘
json
request.post( url=‘xx‘, json={‘k1‘:‘v1,‘k2‘:‘v2‘} ) #数据: POST / http1.1 Content-type:application/json.... {‘k1‘:‘v1,‘k2‘:‘v2‘}
问题:POST请求发数据
django:获取不到值?request.POST
发送数据格式:
方式一: request.post( url=‘xx‘, data={‘k1‘:‘v1,‘k2‘:‘v2‘} ) #数据: POST / http1.1 Content-type:urlencode-form....... k1=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 Content-type:application/json.... {‘k1‘:‘v1,‘k2‘:‘v2‘}
通过request.body
- 字节 = {‘k1‘:‘v1,‘k2‘:‘v2‘}
- 字节转换字符串
- 反序列化字符串 -> 字典
request.POST必然不可以获取到值。
- - content-type: urlencode-form
- - 数据格式:k1=v1&k2=v2
知识点:
chrome-> Form Data(&连接): phone=861513125555&password=12312312312&oneMonth=1 reqeusts.post( url=url, data={ phone:123123123123, password:asdfasdf } ) Request Payload(json格式): {"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 },ensure_ascii=False),encoding=utf-8) ) firefox: 表单数据: JSON:
序列化:
# -*- coding: utf-8 -*- """ @Datetime: 2019/1/5 @Author: Zhang Yafei """ """" 示例一: requests.post( url=msg_url, json= { ‘k1‘:‘v1‘, ‘k2‘:‘垃圾‘ } ) json.dumps() -> unicode 示例二: requests.post( url=msg_url, data= json.dumps({ ‘k1‘:‘v1‘, ‘k2‘:‘垃圾‘ },ensure_ascii=False) ) json.dumps() -> unicode 示例二: requests.post( url=msg_url, data= bytes(json.dumps({ ‘k1‘:‘v1‘, ‘k2‘:‘垃圾‘ },ensure_ascii=False),encoding=‘utf-8‘) ) json.dumps() -> unicode """ import json data_dict = {‘username‘:‘张亚飞‘, ‘password‘:‘12132313213‘} result = json.dumps(data_dict) result2 = json.dumps(data_dict, ensure_ascii=False) result3 = bytes(json.dumps(data_dict, ensure_ascii=False),encoding=‘utf-8‘) print(result) print(result2) print(result3) # {"username": "u5f20u4e9au98de", "password": "12132313213"} # {"username": "张亚飞", "password": "12132313213"} # b‘{"
以上是关于web请求相关的主要内容,如果未能解决你的问题,请参考以下文章
Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段
VSCode自定义代码片段14——Vue的axios网络请求封装
VSCode自定义代码片段14——Vue的axios网络请求封装