post/get请求

post请求四种传送正文方式以及对应的编码方式:

(1)请求正文是application/x-www-form-urlencoded

这应该是最常见的 POST 提交数据的方式了。浏览器的原生 form 表单。

形式:

requests.post(url='',data={'key1':'value1','key2':'value2'},headers={'Content-Type':'application/x-www-form-urlencoded'})

  ♦Reqeusts支持以form表单形式发送post请求,只需要将请求的参数构造成一个字典,然后传给requests.post()的data参数即可。

(2)请求正文是multipart/form-data

上传文件用的表单格式

(3)请求正文是raw(原生的)

形式:

♦传入xml格式文本(text/xml)
它是一种使用 XML 作为编码方式的远程调用规范。
 requests.post(url='',data='<?xml  ?>',headers={'Content-Type':'text/xml'})
传入json格式文本(application/json)
这个 Content-Type 作为响应头大家肯定不陌生。实际上,现在越来越多的人把它作为请求头,用来告诉服务端消息主体是序列化后的 JSON 字符串。由于 JSON 规范的流行,除了低版本 IE 之外的各大浏览器都原生支持 JSON.stringify,服务端语言也都有处理 JSON 的函数,使用 JSON 不会遇上什么麻烦。
 requests.post(url='',data=json.dumps({'key1':'value1','key2':'value2'}),headers={'Content-Type':'application/json'})

  (4)请求正文是binary(二进制的)

形式:

requests.post(url='',files={'file':open('test.xls','rb')},headers={'Content-Type':'binary'})

 

get请求用params,params是往url后面添加参数。

  • params:字典或者字节序列,作为参数增加到url中,使用这个参数可以把一些键值对以k1=v1&k2=v2的模式增加到url中,get请求中用的较多。

json和dict对比

json的字符串强制双引号dict字符串可以单引号、双引号;

json的类型是字符串,字典的类型是字典。

通过下面函数来判断是不是字符串是不是json:

 def func(str):

    try:
json.loads(str)
print('true')
except:
print('false')

func("{'key1':'value1','key2':'value2'}") false
func('{"key1":"value1","key2":"value2"}') true


JSON 函数

使用 JSON 函数需要导入 json 库:import json

json.dumps      将 Python 对象编码成 JSON 字符串

json.loads        将已编码的 JSON 字符串解码为 Python 对象,等同于eval() 这里的效果





 
原文地址:https://www.cnblogs.com/yzwdcjs/p/14700757.html