背景:
post请求与get请求是HTTP协议下的两种请求方式。区别在于:post将参数放在request body里头,无法直接看见; url将参数放在URL里头,可以直接看见。而浏览器对URL长度有限f制,一般不超过2K,这意味着get方法传输参数能力有限。get方法也可以在request body里传参数,不过浏览器不保证一定会处理。那get的优势在哪里呢?优势在于get方法只发一次TCP数据包,post方法发两次TCP数据包,也就是说get方法更快。在网络环境较好的情况下,这两种方法的耗时几乎可以无视,但在网络环境不好的情况下,发两次包更安全。综上,get快,简单;post运力高,安全。
python3 post请求:
from urllib import request
import json
url= "xxx"
headers = {'Content-Type':'application/json'}
data = {'content':'xxxxxx'}
data_json = json.dumps(data, ensure_ascii=False) #dict转str
data_json = data_json.encode('utf8') #str转byte
req = request.Request(url, headers=headers, data=data_json)
page = request.urlopen(req).read()#byte
page = page.decode("utf8") #byte转str
page_dict = json.loads(page) #str转dict
return page_dict
python3 get请求:
from urllib import request
import json
url = "xxx"
query = "xxxx"
all_url = url+query
page = request.urlopen(all_url).read() #结果为byte
page = page.decode("utf8") #byte转str
page_dict = json.loads(page) #str转dict
return page_dict