一、requests

之前使用python自带的urllib模块去请求一个网站或者接口,但是urllib模块太麻烦了,传参数的话,都得是bytes类型,返回数据也是bytes类型,还得解码,想把返回结果拿出来使用的话,还得用json,发get请求和post请求,也不通,使用比较麻烦,还有一个比较方便的模块,比urllib模块方便很多,就是requests模块,它使用比较方便,需要安装,pip install requests即可,下面是requests模块的实例

1.发送get请求

 url ='http://IP/api/user/stu_info'
data = {'stu_name':'小黑'}#请求数据
req = requests.get(url,params=data)#发get请求
print(req.json())#返回的是个字典
print(req.text)#返回的是json串 string类型

2.发送post请求

 url ='http://IP/api/user/login'
data = {'username':'niuhanyang', 'passwd':'aA123456'}#请求数据
req = requests.post(url,data)#发送post请求
print(req.json())

3.入参是json类型的

 import random
url='http://IP/api/user/add_stu'
phone =random.randint(10000000000,99999999999)
data = {
"name":"ytt",
"grade":"天蝎座",
"phone":phone,
"sex":"女",
"age":28,
"addr":"河南省济源市北海大道32号"
}
req = requests.post(url,json=data)#指定入参json
print(req.json())#.json()方法获取的结果直接是一个字典

4.添加cookie

 url= 'http://IP/api/user/gold_add'
data ={'stu_id':468,'gold':1000}
cookie ={'niuhanyang':'337ca4cc825302b3a8791ac7f9dc4bc6'}
req = requests.post(url,data,cookies=cookie)#使用cookies参数指定cookie
print(req.json())

5.添加header

 url ='http://IP/api/user/all_stu'
header ={
'Referer':'http://api.nnzhp.cn/'
}
req = requests.get(url,headers=header)#指定headers参数,添加headers
print(req.json())

6.上传文件、图片

 url ='http://api.nnzhp.cn/api/file/file_upload'
# data = {
# 'file':open('ytt.txt',encoding='utf-8')
# }#上传文件
data = {
'file':open(r'C:\Users\yantiantian\Desktop\ytt.png','rb')
}#上传图片
req = requests.post(url,files=data)#指定files参数,传文件,是一个文件对象
print(req.json())

7.下载文件

 url ='http://r.photo.store.qq.com/psb?/V11Xu0l62tE9ZU/YkT0cPNTMfGUHhTbTwB7*bZEySWaXvK1BlaRD3GGMgc!/r/dKzoe.WwLQAA&.jpg'
req = requests.get(url)
print(req.content)#返回的二进制的
fw = open('ytt.jpg','wb')
fw.write(req.content) #下载mp3
url2 ='http://up.mcyt.net/?down/46779.mp3'
req = requests.get(url)
print(req.content)#返回的二进制的
fw = open('ytt.mp3','wb')
fw.write(req.content)

python--网络编程requests的更多相关文章

  1. python网络编程----requests模块

    python访问网站可以用标准模块--urllib模块(这里省略),和requests(安装-pip install requests)模块,requests模块是在urllib的基础上进行的封装,比 ...

  2. 《Python网络编程》学习笔记--使用谷歌地理编码API获取一个JSON文档

    Foundations of Python Network Programing,Third Edition <python网络编程>,本书中的代码可在Github上搜索fopnp下载 本 ...

  3. Python 网络编程(二)

    Python 网络编程 上一篇博客介绍了socket的基本概念以及实现了简单的TCP和UDP的客户端.服务器程序,本篇博客主要对socket编程进行更深入的讲解 一.简化版ssh实现 这是一个极其简单 ...

  4. Python 网络编程(一)

    Python 网络编程 socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. ...

  5. Python学习(22)python网络编程

    Python 网络编程 Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的 ...

  6. Day07 - Python 网络编程 Socket

    1. Python 网络编程 Python 提供了两个级别访问网络服务: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口 ...

  7. python网络编程-01

    python网络编程 1.socket模块介绍 ①在网络编程中的一个基本组件就是套接字(socket),socket是两个程序之间的“信息通道”. ②套接字包括两个部分:服务器套接字.客户机套接字 ③ ...

  8. Python网络编程基础pdf

    Python网络编程基础(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1VGwGtMSZbE0bSZe-MBl6qA 提取码:mert 复制这段内容后打开百度网盘手 ...

  9. python 网络编程(Socket)

    # from wsgiref.simple_server import make_server## def RunServer(environ,start_response):# start_resp ...

  10. python 网络编程 IO多路复用之epoll

    python网络编程——IO多路复用之epoll 1.内核EPOLL模型讲解     此部分参考http://blog.csdn.net/mango_song/article/details/4264 ...

随机推荐

  1. 用Cocos2dx开发棋牌游戏的观点解析

    众所周知,目前棋牌游戏特别的火.很多游戏公司都想在这一块赚钱,可是却不知用什么软件比较好的去开发棋牌游戏,对此,我列出了两款比较靠谱的软件去开发棋牌游戏,希望对大家有帮助! 第一款软件是cocos2d ...

  2. 2018-2019-2 网络对抗技术 20165316 Exp5 MSF基础应用

    2018-2019-2 网络对抗技术 20165316 Exp5 MSF基础应用 目录 原理与实践说明 实践原理 实践内容概述 基础问题回答 攻击实例 主动攻击的实践 ms08_067_netapi: ...

  3. vue 定义全局函数,监听android返回键事件

    vue 定义全局函数,监听android返回键事件 方法一:main.js 注入(1)在main.js中写入函数Vue.prototype.changeData = function (){ aler ...

  4. JavaScript笔记1———js的数据类型

    JS的数据类型有: 1.数值类型(Number):js中所有数字均用浮点数字表示. 可以表示32位(即4字节)的整数,也可以表示64位(即8字节)的浮点数(小数). 也可以用二进制.八进制.十进制.十 ...

  5. web 分享到facebook

    利用meta 使自己的页面变为一种富媒体文件,利用facebook的 open Graph 比如你的html页面想要以图片的形式被分享 <meta property="og:image ...

  6. Oracle GoldenGate 18.1 支持的DB和OS列表

    Product Release Processor Type OS Version OS Update Type OS Update Level Run Mode 32/64 Bit Database ...

  7. spring aop 切面编程

    import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.Ha ...

  8. MVC4 中的Model显示设置(含显示Shared/DisplayTemplates和编辑Shared/EditorTemplates)

    转载于: MVC4 中的Model显示设置(含显示Shared/DisplayTemplates和编辑Shared/EditorTemplates) 虽然 [Display(Name="XX ...

  9. HBase根据Rowkey批量查询数据JAVA API(一次查多条,返回多个记录)

    最近在生产中遇到了一个需求,前台给我多个rowkey的List,要在hbase中查询多个记录(返回给前台list).在网上也查了很多,不过自己都不太满意,filter的功能有可能查询结果不是准确值,而 ...

  10. mybatis之Mybatis_demo

    这篇博文通过简单的CRUD案例,让大家能够快速的上手,使用mybatis.   1,在eclipse中新建java project项目 mybatis_demo 2,在mybatis_demo项目中建 ...