python学习笔记(十一):网络编程

一、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

时间: 2024-10-09 13:14:06

python学习笔记(十一):网络编程的相关文章

python学习笔记11 ----网络编程

网络编程 网络编程需要知道的概念 1.网络体系结构就是使用这些用不同媒介连接起来的不同设备和网络系统在不同的应用环境下实现互操作性,并满足各种业务需求的一种粘合剂.网络体系结构解决互质性问题彩是分层方法. 网络(OSI)的7层模型: 应用层--->为应用程序提供网络通信服务 表示层--->数据表示 会话层--->主机间通信(两个应用进程间) 传输层--->端到端的连接,隔离网络的上下层协议,使得网络应用与下层协议无关 网络层--->寻找最优路径,转发数据包 数据链路层---&

Python学习笔记之网络编程

操作MySQL # 断言 assert(1==1) ############################################################################# ******************************************************************** # 创建Connection * ------------------------------------------------------------

Linux程序设计学习笔记----Socket网络编程基础之TCP/IP协议簇

转载请注明出处: ,谢谢! 内容提要 本节主要学习网络通信基础,主要涉及的内容是: TCP/IP协议簇基础:两个模型 IPv4协议基础:IP地址分类与表示,子网掩码等 IP地址转换:点分十进制\二进制 TCP/IP协议簇基础 OSI模型 我们知道计算机网络之中,有各种各样的设备,那么如何实现这些设备的通信呢? 显然是通过标准的通讯协议,但是,整个网络连接的过程相当复杂,包括硬件.软件数据封包与应用程序的互相链接等等,如果想要写一支将联网全部功能都串连在一块的程序,那么当某个小环节出现问题时,整只

nodejs学习笔记之网络编程

了解一下OSI七层模型 OSI层 功能 TCP/IP协议 应用层 文件传输,电子邮件,文件服务,虚拟终端  TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 表示层 数据格式化,代码转换,数据加密 - 会话层 数据格式化,代码转换,数据加密 - 传输层 提供端对端的接口 TCP,UDP 网络层 为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP 数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,MTU 物理层  以二

《Python学习之路 -- 网络编程》

在前面已经提到过,互联网的本质就是一堆协议,协议就是标准,比如全世界人通信的标准是英语,所有的计算机都学会了互联网协议,那么所有的计算机就可以按照统一的标准去收发信息完成通信了. 作为普通开发人员的我们,写的软件/程序都是处于应用层上的,然而,想要让软件接入互联网,就必须得通过传输层,也就是必须遵循TCP协议或者UDP协议.这是两个非常复杂的协议,如果遵循原生的协议,那么必然会大大降低效率,所以就有了socket抽象层的概念.socket是应用层与TCP/IP协议族通信的软件抽象层,它是一组接口

Python学习之==>Socket网络编程

一.计算机网络 多台独立的计算机通过网络通信设备连接起来的网络.实现资源共享和数据传递.在同一台电脑上可以将D盘上的一个文件传到C盘,但如果想从一台电脑传一个文件到另外一台电脑上就要通过计算机网络 二.网络编程 所谓网络编程就是通过某种计算机语言来实现不同设备间的资源共享和信息传递.计算机网络的创造比计算机本身的意义更大,否则我们现在还玩着单机游戏,也没有现在蒸蒸日上的互联网行业. 1.OSI模型 OSI模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架.OSI模型把网络通信的

python 3.x 学习笔记13 (网络编程socket)

1.协议http.smtp.dns.ftp.ssh.snmp.icmp.dhcp....等具体自查 2.OSI七层应用.表示.会话.传输.网络.数据链路.物理 3.socket: 对所有上层协议的封装 4.socket常用功能1)sk.bind(address) s.bind(address) 将套接字绑定到地址.address地址的格式取决于地址族.在AF_INET下,以元组(host,port)的形式表示地址. 2)sk.listen(backlog) 开始监听传入连接.backlog指定在

python学习笔记-day8-3-【python 网络请求及requests模块】

python的网络请求,主要是进行Http协议类接口调用,进行接口测试等. 一.urllib库,python内嵌的库,不太好用. from urllib import request,parse import json # url = 'http://baidu.com' # req = request.urlopen(url) #打开一个url # content = req.read().decode() # fw = open('nnzhp.html', 'w', encoding='ut

Python学习笔记十一:面向对象

面向对象技术简介 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之外.类变量通常不作为实例变量使用. 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据. 方法重载:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重载. 实例变量:定义在方法中的变量,只作用于当前实例的类.

python学习笔记之面向对象编程特性(二)

面向对象程序设计中的术语对象(Object)基本上可以看做数据(特性)以及由一系列可以存取.操作这些数据的方法所组成的集合.传统意义上的"程序=数据结构+算法"被封装"掩盖"并简化为"程序=对象+消息".对象是类的实例,类的抽象则需要经过封装.封装可以让调用者不用关心对象是如何构建的而直接进行使用. 首先说明一下python编程规范: #!/usr/bin/env python #coding=utf-8 #编程规范,示例如下:   class