基于http协议,最常用的是GET和POST两种方法。

接口文档需要包含哪些信息:

接口名称
接口功能
接口地址
支持格式 json/xml
请求方式
请求示例
请求参数(是否必填、数据类型、传递参数格式)
返回参数说明
以典型的(一两个)参数做为判断是否请求通过(重点是看响应的信息判断)

一、GET

 1 import requests2 import json3 4 url = "http://v.juhe.cn/laohuangli/d"5 para = {"key":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","date":"2017-3-22"}6 header ={}7 8 r = requests.get(url,params=para,headers= header,)9 #verify=True适用于服务端的ssl证书验证,verify=False为关闭ssl验证
10 print('get请求获取的响应结果json类型',r.text) 11 print("get请求获取响应状态码",r.status_code) 12 print("get请求获取响应头",r.headers['Content-Type']) 13 14 #响应的json数据转换为可被python识别的数据类型 15 json_r = r.json() 16 print(json_r)

二、POST

post请求有两种请求格式:
1、key-value的格式'Content-Type':'application/x-www-form-urlencoded'
2、标准json的格式:'Content-Type':'application/json'

#key-value

 1 import requests2 import json3 4 url = "http://v.juhe.cn/laohuangli/d"5 para = {"key":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","date":"2017-3-22"}6 header ={}7 8 r = requests.post(url,data=para,headers= header)9
10 print('get请求获取的响应结果json类型',r.text)
11 print("get请求获取响应状态码",r.status_code)
12 print("get请求获取响应头",r.headers['Content-Type'])
13
14 #响应的json数据转换为可被python识别的数据类型
15 json_r = r.json()
16 print(json_r)

#json

 1 import requests2 import json3 4 url = "http://v.juhe.cn/laohuangli/d"5 para = {"key":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","date":"2017-3-22"}6 header ={}7 #python数据类型转换为json类型(json.dumps())8 para = json.dumps(para)9 r = requests.post(url,data=para,headers= header)
10
11 print('get请求获取的响应结果json类型',r.text)
12 print("get请求获取响应状态码",r.status_code)
13 print("get请求获取响应头",r.headers['Content-Type'])
14
15 #响应的json数据转换为可被python识别的数据类型
16 json_r = r.json()
17 print(json_r)

三、把所有的请求封装在函数中

 1 def get(url,para,headers):2     try:3         r = requests.get(url,params=para,headers=headers)4         print("获取返回的状态码",r.status_code)5         json_r = r.json()6         print("json类型转化成python数据类型",json_r)7     except BaseException as e:8         print("请求失败!",str(e))9 def post(url,para,headers):
10     try:
11         r = requests.post(url,data=para,headers=headers)
12         print("获取返回的状态码",r.status_code)
13         json_r = r.json()
14         print("json类型转化成python数据类型",json_r)
15     except BaseException as e:
16         print("请求失败!",str(e))
17 def post_json(url,para,headers):
18     try:
19         data = para
20         data = json.dumps(data)   #python数据类型转化为json数据类型
21         r = requests.post(url,data=data,headers=headers)
22         print("获取返回的状态码",r.status_code)
23         json_r = r.json()
24         print("json转换为python数据类型:",json_r)
25     except BaseException as e:
26         print("请求失败!",str(e))
27
28 url = "http://v.juhe.cn/laohuangli/d"
29 para = {"key":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","date":"2017-3-22"}
30 headers ={}
31
32 get(url,para,headers)
33 post(url,para,headers)
34 post_json(url,para,headers)

四、把所有请求封装在一个对象里

 1 class Webrequests:2     def get(self,url,para,headers):3         try:4             r = requests.get(url,params=para,headers=headers)5             print("获取返回的状态码",r.status_code)6             json_r = r.json()7             print("json类型转化成python数据类型",json_r)8         except BaseException as e:9             print("请求失败!",str(e))
10     def post(self,url,para,headers):
11         try:
12             r = requests.post(url,data=para,headers=headers)
13             print("获取返回的状态码",r.status_code)
14             json_r = r.json()
15             print("json类型转化成python数据类型",json_r)
16         except BaseException as e:
17             print("请求失败!",str(e))
18     def post_json(self,url,para,headers):
19         try:
20             data = para
21             data = json.dumps(data)   #python数据类型转化为json数据类型
22             r = requests.post(url,data=data,headers=headers)
23             print("获取返回的状态码",r.status_code)
24             json_r = r.json()
25             print("json类型转化成python数据类型",json_r)
26         except BaseException as e:
27             print("请求失败!",str(e))
28
29 url = "http://v.juhe.cn/laohuangli/d"
30 para = {"key":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","date":"2017-3-22"}
31 headers ={}
32
33 q = Webrequests()
34
35 q.get(url,para,headers)
36 q.post(url,para,headers)
37 q.post_json(url,para,headers)

python,基于http协议,最常用的是GET和POST两种方法相关推荐

  1. java整型转换为数组_基于java中byte数组与int类型的转换(两种方法)

    java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形 ...

  2. python怎么在图片上写字_Python在图片中添加文字的两种方法

    本文主要介绍的是利用Python在图片中添加文字的两种方法,下面分享处理供大家参考学习,下来要看看吧 一.使用OpenCV 在图片中添加文字看上去很简单,但是如果是利用OpenCV来做却很麻烦.Ope ...

  3. 怎样在python的turtle中输入文字_Python在图片中添加文字的两种方法

    本文主要介绍的是利用Python在图片中添加文字的两种方法,下面分享处理供大家参考学习,下来要看看吧 一.使用OpenCV 在图片中添加文字看上去很简单,但是如果是利用OpenCV来做却很麻烦.Ope ...

  4. python统计汉字个数是_python统计中文字符数量的两种方法

    方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = c ...

  5. python怎么统计多少字符_python统计中文字符数量的两种方法

    方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = c ...

  6. python 学习系列(3) 读取并显示图片的两种方法

    python 读取并显示图片的两种方法 在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片.本人偏爱 matpoltlib,因为它的语法更像 mat ...

  7. python获取剪切板图片_python 获取剪切板内容的两种方法

    第一种 # -*- coding: utf-8 -*- # @Time : 2020/3/16 21:26 # @File : get_text_from_cupboard_13.py # @Auth ...

  8. python读取指定行到最后一行_python读取文件最后一行两种方法

    原博文 2018-09-27 13:58 − 1)常规方法:从前往后依次读取 步骤:open打开文件. ... 相关推荐 2019-09-28 21:13 − Python python是一种跨平台的 ...

  9. python杨辉三角居中_python打印杨辉三角的两种方法及详解

    艾斯压阵 1c950a7b02087bf4200394cdf1d3572c11dfcf23.jpg 一盏灯, 一片昏黄: 一简书, 一杯淡茶. 守着那一份淡定, 品读属于自己的寂寞. 保持淡定, 才能 ...

最新文章

  1. EqualizeHist函数
  2. Java 编程的动态性,第 5 部分: 动态转换类--转载
  3. jmeter中重定向多个正则表达式_2020年jmeter技术实战续集,最新技术全栈,值得收藏
  4. JAVA并发篇_公平锁与非公平锁
  5. 约束布局(ConstraintLayout)1.1.2 版本的新特性
  6. Gridview 增加多个空行。
  7. STM8S003F3串口中断发送问题
  8. Python大佬用20行代码带你打造一个微信聊天机器人(附代码)
  9. android 获取图片信息 之 ExifInterface
  10. 斗战神与服务器断开响应,win10系统玩斗战神游戏掉线的设置办法
  11. L2CAP数据发送和接收
  12. 一周热图|王珞丹创立宠物用品品牌;超模何穗亮相雀巢冷萃自由大秀;乐高试点有声与盲文拼搭指南...
  13. 基于Java的飞机大战游戏的设计与实现(含源文件)
  14. Matlab:查找命令行窗口或历史记录中的文本
  15. 常用测试网络联通方法
  16. 上半年要写的博客文章30
  17. 嵌入式系统硬件设计与实践(学习方法)
  18. 更新和卸载 oh-my-zsh
  19. IPerf3 for Android 7
  20. Android数据转化为Excel表格导入导出

热门文章

  1. C++ 动态分配内存的好处
  2. 7种事务传播行为案例详解
  3. 如何做好一个TeamLeader,欢迎留言探讨
  4. 《信息管理学基础》——娄策群(第二版)第二章答案
  5. catf1ag平台 友谊杯
  6. 小孩鼻子出血七种原因(小孩流鼻血是什么原因儿童鼻出血怎么回事
  7. 转】PPT带备注演示(只有讲解者看到备注)[转载]
  8. vue项目结构php写哪里,vuex项目结构目录与配置使用详解
  9. 周末工程:给HP DV2000散热器除尘降温
  10. JSON schema(模式)