当前位置: 首页>后端>正文

python request 调用RESTful接口 python 调用restful api

python restful api 编程 

【1】微博开放平台的RESTful API:open.weibo.com -> 文档 -> 调用样例及调试工具

通过Linux命令行查看API返回结果:curl ip?参数

json数据格式化工具:pro.jsonlint.com

 

【2】RESTful的起源及设计理念

Representational State Transfer

一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件。

它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

 

【3】Python包管理工具:easy_instal和pip

为一个应用创建一套“隔离”的Python运行环境:virtualenv

 

wget  https://bootstrap.pypa.io/get-pip.py

python get-pip.py

pip install XXX

 

virtualenv安装使用方法:

easy_install virtualenv    

mkdir myproject

cd myproject

virtualenv venv  

 source /root/myproject/venv/bin/activate 激活virtualenv 

deactivate  关闭virtualenv 

 

【4】Chrome开发者工具介绍

Chrome浏览器中的各个选项卡:

Network: 分析网站请求的网络情况、查看某一请求的请求头和响应头还有响应内容

Elements:左侧就是对页面HTML结构的查看与编辑,右侧可以对元素的CSS进行查看与编辑修改

Console: 在这个面板可以查看错误信息、打印调试信息(console.log())、写一些测试脚本,还可以当作Javascript API查看用

 

【5】Python HTTP库Requests介绍

Requests文档: http://docs.python-requests.org/zh_CN/latest/user/quickstart.html

介绍并演示Requests的get,post,put,delete方法

介绍并演示Requests如何添加浏览器头

介绍并演示Requests如何处理相应

 

pip install requests

import requests

 

发送请求

r = requests.get('https://github.com/timeline.json')

响应内容

r.text

r.encoding

r.json()

使用 r.content 来找到编码,然后设置 r.encoding 为相应的编码。这样就能使用正确的编码解析 r.text

from PIL import Image

from io import BytesIO

i = Image.open(BytesIO(r.content))以请求返回的二进制数据创建一张图片

r = requests.get('https://github.com/timeline.json', stream=True)

r.raw获取来自服务器的原始套接字响应

 

传递 URL 参数

payload = {'key1': 'value1', 'key2': 'value2'}

r = requests.get("http://httpbin.org/get", params=payload)

print(r.url)

 

定制请求头

url = 'https://api.github.com/some/endpoint'

headers = {'user-agent': 'my-app/0.0.1'}

r = requests.get(url, headers=headers)

 

r.status_code

r.raise_for_status()抛出异常

 

HTTP 状态码

200 ok - 成功返回状态,对应,GET,PUT,PATCH,DELETE.

201 created - 成功创建。

304 not modified - HTTP缓存有效。

400 bad request - 请求格式错误。

401 unauthorized - 未授权。

403 forbidden - 鉴权成功,但是该用户没有权限。

404 not found - 请求的资源不存在

405 method not allowed - 该http方法不被允许。

410 gone - 这个url对应的资源现在不可用。

415 unsupported media type - 请求类型错误。

422 unprocessable entity - 校验错误时用。

429 too many request - 请求过多。

 

追踪重定向(错误码为3开头)

r.history

 

超时时间

requests.get('http://github.com', timeout=0.001)


https://www.xamrdz.com/backend/3pt1937445.html

相关文章: