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

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

        import jsonfrom urllib import requestfrom urllib import parsepay_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()#指定入参jsonprint(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参数指定cookieprint(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参数,添加headersprint(res)

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

python学习笔记(十一):网络编程相关推荐

  1. Python学习笔记三之编程练习:循环、迭代器与函数

    Python学习笔记三之编程练习 1. 编程第一步 # 求解斐波纳契数列 #/user/bin/python3#Fibonacci series:斐波那契数列 #两个元素的总和确定了下一个数 a,b= ...

  2. 黑马程序员_java自学学习笔记(八)----网络编程

    黑马程序员_java自学学习笔记(八)----网络编程 android培训. java培训.期待与您交流! 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无 ...

  3. Python学习笔记·交互式图形编程

    Python学习笔记·交互式图形编程 注:在校计算机学生一名,菜鸟一枚,最近开始学习Python的基础知识希望有什么不对的地方各位大佬能够不令赐教! 课程是在中国大学MOOC上学的,有兴趣的同学可以自 ...

  4. Netty学习笔记二网络编程

    Netty学习笔记二 二. 网络编程 1. 阻塞模式 阻塞主要表现为: 连接时阻塞 读取数据时阻塞 缺点: 阻塞单线程在没有连接时会阻塞等待连接的到达,连接到了以后,要进行读取数据,如果没有数据,还要 ...

  5. [python学习] 专题七.网络编程之套接字Socket、TCP和UDP通信实例

    很早以前研究过C#和C++的网络通信,参考我的文章:                  C#网络编程之Tcp实现客户端和服务器聊天                 C#网络编程之套接字编程基础知识   ...

  6. Python学习十:网络编程

    文章目录 一.网络基础 1.1 为什么要使用通信协议 1.2 TCP/IP 简介 1.3 UDP 简介 1.4 Socket 简介 1.41 Python 使用 二.TCP 编程 2.1 创建TCP服 ...

  7. JavaSE学习笔记之网络编程

    网络基础 网络模型 网络模型一般是指OSI七层参考模型和TCP/IP四层参考模型.这两个模型在网络中应用最为广泛. OSI模型,即开放式通信系统互联参考模型(Open System Interconn ...

  8. Qt学习笔记之网络编程

    Qt网络模块提供了允许您编写TCP / IP客户端和服务器的类.它提供了代表低级网络概念的低级类(例如QTcpSocket,QTcpServer和QUdpSocket),以及高级类(例如QNetwor ...

  9. TCP/IP网络编程 学习笔记_1 --网络编程入门

    前言:这个系列网络编程教程实例代码是在Xcode上运行的,MacOSX,是一个基于UNIX核心的系统,所以基于Linux的网络编程代码一般可以直接在Xcode上运行,如果要移植到Windows其实就只 ...

  10. Java基础学习笔记之网络编程

    Java基础之网络编程 1.网络编程概述 什么是网络编程 指的是在多个设备(计算机)执行,其中的设备使用一个网络中的所有连接到对方编写程序 网络编程的目的 与其他计算机进行通信 网络编程的问题 1.如 ...

最新文章

  1. Confluence 6 查看空间活动
  2. 收藏|最优论文+代码查找神器,覆盖AI全领域(966个ML任务、8500+论文)
  3. Human centered design and design thinking
  4. 圣母大学应用计算机数学统计,圣母大学(美国)应用、计算数学与统计学本科专业.pdf...
  5. 计算机网络【5】应用层
  6. 代码中 密码存储_你还记得浏览器自动存储的密码吗?用js代码恢复一下记忆吧...
  7. 字符串替换:用参数字符数组成员替换字符串中的占位符(面试题)
  8. Kali Linux 秘籍 翻译完成!
  9. micropython和python区别-MicroPython简介
  10. 看看junit在一个具体的项目中
  11. 清除VS2005中的最近项目
  12. 思维导图是如何做会议记录的
  13. nifi mysql hive_Nifi入门
  14. 服务器无线网络禁用启用无效,无线网络卡一直被禁用,无法启用
  15. 计算机app无法删除,文件夹删不掉怎么办?
  16. 【reverse】buu-[Zer0pts2020]easy_strcmp——main函数的启动过程+IDA动态调试ELF
  17. 地铁怎么坐才不能做反_坐地铁怎样才不会坐反方向
  18. 如何将图片的背景色去掉?怎样快速去除背景色?
  19. Nexus的权限管理
  20. 如何在大屏幕上滚动播放视频、图片和文字

热门文章

  1. HTML5基本知识小测验
  2. 【交往智慧】002.和优秀的人接触
  3. mysql 中如何增加查询排序性能
  4. tomcatserver管理界面username和password忘记
  5. 通过java.net.URLConnection发送HTTP请求
  6. hiho 第1周 最长回文子串
  7. python-55: 验证码的生成机制
  8. iptables的应用
  9. zookeeper编程入门系列之zookeeper实现分布式进程监控和分布式共享锁(图文详解)...
  10. 1.1 创建 Android 项目