一、上面是使用python自带的urllib模块去请求一个网站,或者接口,但是urllib模块太麻烦了,传参数的话,都得是bytes类型,返回数据也是bytes类型,还得解码,想直接把返回结果拿出来使用的话,还得用json,发get请求和post请求,也不通,使用比较麻烦,还有一个比较方便的模块,比urllib模块方便很多,就是requests模块,它使用比较方便,需要安装,pip install requests即可,下面是requests模块的实例
import requests
pay_url = 'http://szz.nnzhp.cn/pay'
balance_url = 'http://szz.nnzhp.cn/get_balance'
balance_data = {'user_id':1}
pay_data ={"user_id":1,"price":"999"}
get请求: balance_res = requests.get(balance_url,balance_data).text
print(balance_res)
balance_res = requests.get(balance_url,balance_data).json()
print(balance_res)
post请求:pay_res = requests.post(pay_url,pay_data).json()
print(pay_res)
url = 'http://api.nnzhp.cn/getmoney'
data = {"userid":1}
res = requests.post(url,json=data).json()
print(res)
url = 'http://api.nnzhp.cn/setmoney2'
data = {'userid':1,"money":9999}
cookie = {'token':"token12345"}
res = requests.post(url,data,cookies=cookie).json()
print(res)
url = 'http://api.nnzhp.cn/setmoney'
data = {'userid':1,"money":91999}
res = requests.post(url,data,auth=('admin','123456')).json()
print(res)
url = 'http://api.nnzhp.cn/uploadfile'
res = requests.post(url,files={'file':open('api11.py',‘rb’)}).json()
print(res)
url = 'http://api.nnzhp.cn/getuser2'
data = {'userid':1}
header = {'Content-Type':"application/json"}
res = requests.post(url,headers=header).json()
print(res)
---------------------------------------------------------------------------------------------------
二、python操作网络,也就是打开一个网站,或者请求一个http接口,使用urllib模块。
urllib模块是一个标准模块,直接import urllib即可,在python3里面只有urllib模块,在python2里面有urllib模块和urllib2模块。
import json
from urllib import request
from urllib import parse
get请求:
pay_url = 'http://szz.nnzhp.cn/pay'
balance_url = 'http://szz.nnzhp.cn/get_balance'
balance_data = {'user_id':1}
new_balance_data = parse.urlencode(balance_data)
balance_req = request.urlopen(balance_url+'?'+new_balance_data)
print(balance_req.read().decode())
post请求:
pay_data ={"user_id":1,"price":"999"}
new_pay_data = parse.urlencode(pay_data)
pay_req = request.urlopen(pay_url,new_pay_data.encode())
print(pay_req.read().decode())
res = json.loads(pay_req.read().decode())
print(res)