python pycurl_Python pycurl使用

本文详细介绍了如何使用Python的pycurl库进行HTTP请求,包括设置URL、HTTP头部信息、请求方法、POST数据、回调函数、超时时间、用户代理等,并通过具体示例展示了GET和PUT请求的实现,是Python网络编程的实用参考资料。
摘要由CSDN通过智能技术生成

pycurl是curl的一个python版本。

pycurl的使用说明:

pycurl的使用主要是一些参数的设定。

1,c.setopt(pycurl.URL,myurl)

设定链接的地址

2,c.setopt(pycurl.HTTPHEADER,['Content-Type: application/json','Content-Length: '+str(len(remove_str))])

设置http的包头信息。注意,长度的字符传是用于put或者post等方法传参数的。

3,c.setopt(pycurl.CUSTOMREQUEST,"DELETE")

设置封装方法,有put,post,get,delete等多种方法

4, c.setopt(pycurl.POSTFIELDS,remove_str)

设置psot过去的数据,注意是一个字典样式的字符串

5,c.setopt(pycurl.WRITEFUNCTION,b.write)

c.setopt(pycurl.FOLLOWLOCATION, 1)

设置写的回调,所有输出都定向到b.write中。

6,c.setopt(pycurl.MAXDEDIRS,5)

设置重定向次数

7,c.setopt(pycurl.CONNECTTIMEOUT,60)

c.setopt(pycurl.TIMEOUT,600)

设置链接超时,设置下载超时

8,c.setopt(pycurl.USERAGENT,"xxxx")

设置代理浏览器

9,c.setopt(pycurl.HEADER,1)

开启包头输出

c.setopt(pycurl.HEADERFUNCTION,header_str.write)

将包头输出到header_str.write流中

10,c.perform()

执行curl命令

11,print b.getvalue()打印消息

12,print c.getinfo(c.HTTP_CODE)   //答应返回值

Print c.getinfo(c.CONTENT_TYPE)  //打印文本类型

Print c.getinfo(c.EFFECTIVE_URL)  //打印重定向URL

具体举例:

环境:限制需要访问地址

具体代码如下:

Import  pycurl

Import StringIO

checkurl="www.test.com/abc?afgf=afd

"

b=StringIO.StringIO()

c=pycurl.Curl()

c.setopt(pycurl.URL, checkurl)

c.setopt(pycurl.HTTPHEADER, ["Accept:"])

c.setopt(pycurl.WRITEFUNCTION, b.write)

c.setopt(pycurl.FOLLOWLOCATION, 1)

c.setopt(pycurl.MAXREDIRS, 5)

c.perform()

Print b.getvalue()

Print c.getinfo(c.HTTP_CODE)

b.close()

c.close()

传参数的例子

b = StringIO.StringIO()

c = pycurl.Curl()

mkdir_str = '[{"op":"MKDIRS","permission"=permission}]'

mkdir_url="http://192.168.0.112/abdf?op=MKDIRS&permission=%s" % (self.url_path,path,permission)

c.setopt(pycurl.URL, mkdir_url)

c.setopt(pycurl.HTTPHEADER,['Content-Type:application/json','Content-Length: '+str(len(mkdir_str))])

c.setopt(pycurl.CUSTOMREQUEST,"PUT")

c.setopt(pycurl.POSTFIELDS,mkdir_str)

c.setopt(pycurl.WRITEFUNCTION, b.write)

c.setopt(pycurl.FOLLOWLOCATION, 1)

c.setopt(pycurl.MAXREDIRS, 5)

c.perform()

status = c.getinfo(c.HTTP_CODE)

bbody = b.getvalue()

b.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值