博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python学习笔记(十一):网络编程
阅读量:5976 次
发布时间:2019-06-20

本文共 3028 字,大约阅读时间需要 10 分钟。

一、python操作网络,也就是打开一个网站,或者请求一个http接口,使用urllib模块。

urllib模块是一个标准模块,直接import urllib即可,在python3里面只有urllib模块,在python2里面有urllib模块和urllib2模块。

import json        from urllib import request        from urllib import parse        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)#把请求参数变成xx=11这样的 balance_req = request.urlopen(balance_url+'?'+new_balance_data)#发送get请求 print(balance_req.read().decode()) #获取接口返回的结果,返回的结果是bytes类型的,需要使用decode方法解码,变成一个字符串 pay_data ={
"user_id":1,"price":"999"} new_pay_data = parse.urlencode(pay_data)#把请求参数变成xx=11这样的 pay_req = request.urlopen(pay_url,new_pay_data.encode())#发送post请求,传入参数的话 #参数必须是bytes类型,所以需要先encode一下,变成bytes类型 print(pay_req.read().decode())#获取接口返回的结果,返回的结果是bytes类型的 #需要使用decode方法解码,变成一个字符串 res = json.loads(pay_req.read().decode()) #因为返回的是一个json传,想把json串转成字典的话,久使用json模块转成一个字典 print(res)

二、上面是使用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"} balance_res = requests.get(balance_url,balance_data).text #发送get请求,并获取返回结果,text获取的结果是一个字符串 print(balance_res) balance_res = requests.get(balance_url,balance_data).json() #发送get请求,并获取返回结果,json()方法获取的结果直接是一个字典 print(balance_res) pay_res = requests.post(pay_url,pay_data).json()#调用post方法 print(pay_res) #====入参是json串的==== url = 'http://api.nnzhp.cn/getmoney' data = {
"userid":1} res = requests.post(url,json=data).json()#指定入参json print(res) #======添加cookie===== url = 'http://api.nnzhp.cn/setmoney2' data = {
'userid':1,"money":9999} cookie = {
'token':"token12345"} res = requests.post(url,data,cookies=cookie).json()#使用cookies参数指定cookie print(res) #=====添加权限验证===== url = 'http://api.nnzhp.cn/setmoney' data = {
'userid':1,"money":91999} res = requests.post(url,data,auth=('admin','123456')).json() #使用auth参数指定权限验证的账号密码,auth传的是一个元组 print(res) #======发送文件===== url = 'http://api.nnzhp.cn/uploadfile' res = requests.post(url,files={
'file':open('api11.py')}).json() #指定files参数,传文件,是一个文件对象 print(res) #=====发送header====== url = 'http://api.nnzhp.cn/getuser2' data = {
'userid':1} header = {
'Content-Type':"application/json"} res = requests.post(url,headers=header).json() #指定headers参数,添加headers print(res)

 

转载于:https://www.cnblogs.com/hanzhao1987/p/8215627.html

你可能感兴趣的文章
易宝典文章——如何在Exchange 2010中使用PowerShell文本文件批量移动邮箱
查看>>
智能dns 根据地区解析
查看>>
VS2012配置Git并连接到osc@git
查看>>
索尼高清影视技术学院参观观后感
查看>>
jQuery 文本编辑器插件 HtmlBox 使用
查看>>
怎么看自己服务器的带宽?
查看>>
go的错误处理
查看>>
apache2.4.4的安装过程
查看>>
php5.3安装oracle的扩展oci8与pdo_oci
查看>>
发送超长短信的协议格式
查看>>
CentOS 6.x 快速安装L2TP ***
查看>>
mysql主主复制(双主复制)配置步骤
查看>>
一篇文章能够看懂基础源代码之JAVA篇
查看>>
什么是大数据技术架构
查看>>
【分享】如何救援記憶卡中誤刪的資料
查看>>
北方计算机专修学院“展示自我 秀出风采” 网页创意设计大赛成功举办
查看>>
DNS解析相关实验:7台主机的恩怨情仇
查看>>
Goldengate双向复制配置
查看>>
Oracle官方内部MAA教程
查看>>
DNS相关配置
查看>>