小学课后服务 Python少儿编程 进阶篇:3-初识HTTP协议 课件 (24张PPT)

资源下载
  1. 二一教育资源

小学课后服务 Python少儿编程 进阶篇:3-初识HTTP协议 课件 (24张PPT)

资源简介

(共24张PPT)
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Cum sociis natoque tatibus et magnis dis parturient montes, nascetur ridiculus mus.
少儿编程课
初识HTTP协议
我们先来学习HTTP协议。那么什么是协议呢?
微信和知乎,背后通讯的过程大致如下:
微信服务器
微信
知乎服务器
知乎
知乎/今日头条/抖音
服务器
(Java、PHP等)
知乎/今日头条/抖音
客户端
(Android、IOS、浏览器页面、桌面应用)
知乎/今日头条/抖音
数据库
(MySQL、Oracle等)
请求request
响应response
接收请求
发起数据库连接
从数据库取得数据
数据转为JSON
接收JSON数据
解析JSON
展示到页面上
HTTP协议:请求+响应
我们个人能做新闻类/天气类客户端吗?
公共服务端
答案是可以的!一些企业和政府机构已经提供了公共的数据:
天气预报客户端
每日新闻客户端
人脸识别客户端
英文翻译客户端
……客户端
天气预报服务端
每日新闻服务端
人脸识别服务端
英文翻译服务端
……服务端





公共服务端
那么我们如何使用这些公共的服务呢?通过网址
天气预报客户端
每日新闻客户端
人脸识别客户端
英文翻译客户端
……客户端
天气预报服务端
每日新闻服务端
人脸识别服务端
英文翻译服务端
……服务端
www.1.com
www.2.com
www.3.com
www.4.com
www.5.com





这个过程就和去食堂吃饭一样,想吃什么就去对应的窗口,网址就相当于是打饭的窗口,这里称为接口
{
"code": 200,
"msg": "success",
"newslist": [
{
"ctime": "2016-07-12 13:36",
"title": "外媒:特雷莎-梅赢得首相之职 但将面临脱欧硬仗",
"description": "搜狐国际",
"picUrl": "http://photocdn./20160712/Img458833600_ss.png",
"url": "http://news./20160712/n458855349.shtml"
},
{
"ctime": "2016-07-12 11:17",
"title": "废弃肉饼流入市场 日本警方逮捕三名嫌犯",
"description": "搜狐国际",
"picUrl": "http://photocdn./20160712/Img458826696_ss.jpeg",
"url": "http://news./20160712/n458828803.shtml"
}
]
}
Json数据
接口地址
http://apistore./apiworks/servicedetail/823.html
来看下新闻APP如何来做
这些数据接口都能在哪找到呢?
showapi:https://www.
海航数据开放平台:https://data./
idataapi:http://www.
深圳市政府数据开放平台:http://opendata.sz.
成都市公共数据开放平台:http://www.cddata./
广东省数据开放平台:http://www.gddata./
聚合数据:https://www.
淘宝数据开放平台:http://open.
阿里、百度、讯飞、图灵机器人、。。。。。。。
Requests库下载安装
requests是一个第三方库,用来完成HTTP请求,获取网络数据
1
首先是requests的下载
2
按下回车,将会自动下载安装
安装完成之后,来看一下requests库的简单使用,先来看这样一个网站:
http://www.httpbin.org
这个网站能测试 HTTP 请求和响应的各种信息,比如 cookie、ip、headers 和登录验证等
且支持 GET、POST 等多种方法,对 web 开发和测试很有帮助
GET请求
先来试一下简单的GET请求
1
导入requests库
2
使用get方法去请求网站,将结果输出
import requests
res = requests.get('http://www.httpbin.org')
print(res.text)
3
结果如下,输出了整个网页文本:
使用res变量代表请求后的响应信息,res.text是网页返回的数据
然后在进行GET请求时,传入参数
1
传入参数:用户名和密码
2
输出相应信息中的网址和内容
3
结果如下:
res = requests.get('http://www.httpbin.org/get', params={'username': 'cloudream'})
print(res.url)
print(res.text)
返回的网址后面拼接上了我们传入的参数
返回的内容是json数据,包含传入的参数、请求头等信息
POST请求
现在,我们来写一个带有请求头和参数的post请求
1
编写请求头
2
发起post请求,并将数据输出
headers = {
'User‐Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64)'
'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87Safari/537.36'
}
res = requests.post('http://www./index.php app=fullstack&mod=Public&act=doLogin',
data={
'account': 'chen@ucai',
'password': '111111',
'remember': 'undefined'}, headers=None)
print(res.text)
二进制数据
使用requests获取二进制数据,并存到本地
1
导入相关库
2
使用get方法去请求网站,将结果输出
3
以二进制方式读取图片数据
import requests
from PIL import Image
from io import BytesIO
# 二进制数据
res = requests.get('http://pic29.nipic.com/20130511/9252150_174018365301_2.jpg')
BytesIO能够在内存中读写二进制数据
img = Image.open(BytesIO(res.content))
img.save(r"C:\Users\m_sha\Desktop\test.jpg")
4
将文件存储到桌面
使用requests的get方法获取json数据
1
get获取json数据
res = requests.get('http://httpbin.org/get')
print(res.json())
2
返回的json数据如下:
Post也可以发送json数据,我们使用两种不同的方式发送数据来观察有什么不同
1
get获取json数据
3
Post发送json数据
form = {'username': 'cloud', 'password': '123456'}
res = requests.post('http://httpbin.org/post', data=form)
print(res.text)
2
request如下:
res = requests.post('http://httpbin.org/post', data=json.dumps(form))
print(res.text)
4
第二种request如下:
总结
Summary
HTTP协议

Request库的简单使用

Thanks!

展开更多......

收起↑

资源预览