requests
库,发现很好用,简单。requests
库里介绍说:Requests 使用的是 urllib3,继承了urllib2的所有特性。Requests支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码。
感觉requests
模块貌似是要比urllib
要方便一点呀,但是requests
库为什么没有像urllib2
库一样安装python
后便自带了,为啥还需要另外安装?
requests
是否真如介绍的那样,很厉害,想知道他有哪些缺陷吗?求经验丰富的人士回答下!
requests
库现在在企业里用的多吗?以及你们在使用requests
时候路过哪些坑呢?
你们感觉以后requests发展会怎样,会被并进python安装包里吗?
1
n37r06u3 2015-07-04 20:08:18 +08:00
目测是java企业级开发者
|
2
zog 2015-07-04 20:25:44 +08:00 3
1. requests是第三方库,不是python基金会实现的。python有很多第三方库,你可以去 https://pypi.python.org/pypi/pip 观摩
2. requests只是众多http client其中一个。上手简单。官方是同步实现,缺陷是直接使用不能异步调用,缺陷是速度慢。(可能可以和gevent同时使用,避免这个问题) 3. 同回答2 4. 基本没有这种可能。 |
4
yuankui 2015-07-04 23:13:02 +08:00
如果见一个库好就往python核心库合,那python安装包得右多大啊.
|
5
zhangneww 2015-07-05 07:54:20 +08:00 via Android
python 3 的 urllib 也不错啊
|
6
xiangace 2015-07-05 10:21:00 +08:00
requests 能帮你节省时间, 至于牛不牛逼是按自己场景来的,
* 比如做推送, web业务服务器通过调用 celery task 来避免 友盟/个推的推送接口阻塞. 调用 celery task 也是阻塞的, 但是你的 celery woker 部署在自己同个机群节点里, 甚至 一个交换机上, 假设阻塞延时在 10ms级别, 而如果业务直接调用 http 请求, 可能在100ms级别. * 如果推送业务频繁, 那么 celery worker 在使用 request 发送 http 请求的性能就比不过 pycurl 了. 业务少使用 requests, 或者自己写测试脚本使用非常方便. 推送量大, 使用 pycurl. pycurl 的易用性没有 requests 高. * 需求繁忙的时候, 性能和易用需要有个折中, 工作上有充分的时间,自己把 pycurl 或者 使用 human-curl 这个库封装或者修改为自己方便使用的方式, 当然是理想的. |
7
kaneg 2015-07-06 14:08:53 +08:00
只要你能够使用第三方库,就尽管用requests吧,它已经成了事实上的Python最好用的http client
|
8
xiangace 2015-07-12 10:04:38 +08:00
@kaneg 最好的依据是以场景来说的, 当你需要大量做消息推送的业务时, 代码易用并没有什么用, 而切换其他语言, 比如 Golang 等高性能语言, 或者使用 pycurl 才是符合利益需求, requests 的效率并不高效
|