博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
requests模块访问api接口小记,requests.request、requests.get和requests.post
阅读量:4301 次
发布时间:2019-05-27

本文共 3923 字,大约阅读时间需要 13 分钟。

用了些requests模块,主要是requests.request、requests.get和requests.post

import jsonimport requestsurl='http://localhost:8888/'response=requests.get(url)#打印响应内容print('response.text:',response.text)print('response.content.decode():',response.content.decode())print('response.content:',response.content)print('response.json():',response.json())print('----------------------------------')#打印相应内容类类型print('response.text:',type(response.text))print('response.content.decode():',type(response.content.decode()))print('response.content:',type(response.content))print('response.json():',type(response.json()))print('----------------------------------')#判断相应内容是否相等print(response.text==response.content.decode())print(response.json()==response.content.decode())print(json.loads(response.content.decode())==response.json())

运行结果:

response.text: {"name": 1, "age": 18}

response.content.decode(): {"name": 1, "age": 18}
response.content: b'{"name": 1, "age": 18}'
response.json(): {'name': 1, 'age': 18}
----------------------------------
response.text: <class 'str'>
response.content.decode(): <class 'str'>
response.content: <class 'bytes'>
response.json(): <class 'dict'>
----------------------------------
True
False
True

------------------------------------------------------------------------------------------------------------------

关于json方法:

服务端返回内容有限制,不然response.json()方法会报错

客户端代码:

import tornado.ioloopimport tornado.webclass MainHandler(tornado.web.RequestHandler):    # 定义tornado的get方法    def get(self):        # self.write('{"name":1,"age":18}')#可以用json        # self.write({"name":1,"age":18})#可以用json        self.write({'name':1,'age':18})#可以用json        # self.write("{'name':1,'age':18}")#json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)        # self.write("{'name':1,'age':18}")#json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)        # self.write("test")#json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)        # self.write('test')#json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)        # self.write([1,2,3])#json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)        # self.write(123)#json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)    #定义tornado的post方法    def post(self, *args, **kwargs):        self.write({'name':1,'age':18})#可以用jsondef make_app():    return tornado.web.Application([        (r"/", MainHandler),    ])if __name__ == "__main__":    app = make_app()    app.listen(8888)    tornado.ioloop.IOLoop.current().start()

对比requests.request方法和requests.get、requests.post方法的区别,感觉requests.request就是两这个汇总,手动传方法就行了

import jsonimport requestsurl='http://localhost:8888/'response=requests.get(url)response2=requests.request('get',url)response3=requests.request('post',url)#判断response和response2print('response.text:',response.text==response2.text)print('response.content.decode():',response.content.decode()==response2.content.decode())print('response.content:',response.content==response2.content)print('response.json():',response.json()==response2.json())#判断response和response3print('response.text:',response.text==response3.text)print('response.content.decode():',response.content.decode()==response3.content.decode())print('response.content:',response.content==response3.content)print('response.json():',response.json()==response3.json())

运行结果:

response.text: True

response.content.decode(): True
response.content: True
response.json(): True
response.text: True
response.content.decode(): True
response.content: True
response.json(): True

这个结果是返回结果完全一样的,但是有api接口返回竟然是随机的。。。

比如天气api的这个接口

代码如下:

import jsonimport requestsurl='http://v.juhe.cn/weather/index'data={'cityname':'北京','key':'4ddab89a84997b92d16be8451a877a71'}response=requests.get(url,params=data)response1 = requests.request('GET', url, params=data)print(response.json() == response1.json())

转载地址:http://gbxws.baihongyu.com/

你可能感兴趣的文章
laravel连接sql server 2008
查看>>
Laravel 操作redis的各种数据类型
查看>>
Laravel框架学习笔记之任务调度(定时任务)
查看>>
laravel 定时任务秒级执行
查看>>
浅析 Laravel 官方文档推荐的 Nginx 配置
查看>>
Swagger在Laravel项目中的使用
查看>>
Laravel 的生命周期
查看>>
CentOS Docker 安装
查看>>
Nginx
查看>>
Navicat远程连接云主机数据库
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
Mysql出现Table 'performance_schema.session_status' doesn't exist
查看>>
MySQL innert join、left join、right join等理解
查看>>
vivado模块封装ip/edf
查看>>
sdc时序约束
查看>>
Xilinx Jtag Access/svf文件/BSCANE2
查看>>
NoC片上网络
查看>>
开源SoC整理
查看>>
【2020-3-21】Mac安装Homebrew慢,解决办法
查看>>
influxdb 命令行输出时间为 yyyy-MM-dd HH:mm:ss(年月日时分秒)的方法
查看>>