pycurl的使用方法

pycurl的使用

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

具体举例:

环境:限制需要访问地址

www.test.com/abc?afgf=afd

具体代码如下:

  1. Import  pycurl
  2. Import StringIO
  3. checkurl="www.test.com/abc?afgf=afd
  4. "
  5. b=StringIO.StringIO()
  6. c=pycurl.Curl()
  7. c.setopt(pycurl.URL, checkurl)
  8. c.setopt(pycurl.HTTPHEADER, ["Accept:"])
  9. c.setopt(pycurl.WRITEFUNCTION, b.write)
  10. c.setopt(pycurl.FOLLOWLOCATION, 1)
  11. c.setopt(pycurl.MAXREDIRS, 5)
  12. c.perform()
  13. Print b.getvalue()
  14. Print c.getinfo(c.HTTP_CODE)
  15. b.close()
  16. c.close()

传参数的例子

  1. b = StringIO.StringIO()
  2. c = pycurl.Curl()
  3. mkdir_str = ‘[{"op":"MKDIRS","permission"=permission}]‘
  4. mkdir_url="http://192.168.0.112/abdf?op=MKDIRS&permission=%s" % (self.url_path,path,permission)
  5. c.setopt(pycurl.URL, mkdir_url)
  6. c.setopt(pycurl.HTTPHEADER,[‘Content-Type:application/json‘,‘Content-Length: ‘+str(len(mkdir_str))])
  7. c.setopt(pycurl.CUSTOMREQUEST,"PUT")
  8. c.setopt(pycurl.POSTFIELDS,mkdir_str)
  9. c.setopt(pycurl.WRITEFUNCTION, b.write)
  10. c.setopt(pycurl.FOLLOWLOCATION, 1)
  11. c.setopt(pycurl.MAXREDIRS, 5)
  12. c.perform()
  13. status = c.getinfo(c.HTTP_CODE)
  14. bbody = b.getvalue()
  15. b.close()

本文出自 “一直奔跑在路上” 博客,请务必保留此出处http://liran728729.blog.51cto.com/2505117/1151734

时间: 2024-10-07 19:31:53

pycurl的使用方法的相关文章

pycurl的使用方法get and post

转自:http://www.xuebuyuan.com/743876.html 使用pycurl进行web提交 2012年10月10日 ⁄ 综合 ⁄ 共 1850字 ⁄ 字号 小 中 大 ⁄ 评论关闭 之前使用python提交数据到服务器时都是采用自带的urllib库.前一段时间登录某Cas系统时,总是莫名的失败.失败的原因好像是cookie的问题,各个页面需要共享cookie.尝试了多个给urllib设置cookie的方法,还是没能成功. 后来,试了pycurl,竟然成功了,那就使用pycur

pycurl之公共方法--请求/上传/下载,解析json

1 # -*- coding=utf-8 -*- 2 #curl公共程序 3 #张明伟 20200331 4 import pycurl 5 from io import BytesIO 6 import datetime,time,os 7 import logging 8 import json 9 from logging import handlers 10 testdebug=1 #测试模式:1为是,0为否 11 if testdebug: 12 ip = '221.122.125.2

Python pycurl模块 学习

pycurl模块的安装方法如下: easy_install pycurl #easy_install安装方法 pip install pycurl #pip安装方法 #源码安装方法 # 要求curl-config包支持,需要源码方式重新安装curl # wget http://curl.haxx.se/download/curl-7.36.0.tar.gz # tar -zxvf curl-7.36.0.tar.gz # cd curl-7.36.0 # ./configure # make &

httplib urllib urllib2 pycurl 比较

最近网上面试看到了有关这方面的问题,由于近两个月这些库或多或少都用过,现在根据自己的经验和网上介绍来总结一下. httplib 实现了HTTP和HTTPS的客户端协议,一般不直接使用,在python更高层的封装模块中(urllib,urllib2)使用了它的http实现.所以效率要比这两个库高一点.http://www.cnblogs.com/beiyeren/p/4046139.html #-*- coding:utf-8 –*- from urlparse import urlparse i

python pycurl属性

pycurl.Curl() #创建一个pycurl对象的方法 pycurl.Curl(pycurl.URL, http://www.google.com.hk) #设置要访问的URL pycurl.Curl().setopt(pycurl.MAXREDIRS, 5) #设置最大重定向次数 pycurl.Curl().setopt(pycurl.CONNECTTIMEOUT, 60) pycurl.Curl().setopt(pycurl.TIMEOUT, 300) #连接超时设置 pycurl.

curl库pycurl实例及参数详解

pycurl是功能强大的python的url库,是用c语言写的,速度很快,比urllib和httplib都快. 今天我们来看一下pycurl的用法及参数详解 常用方法: pycurl.Curl() #创建一个pycurl对象的方法 pycurl.Curl().setopt(pycurl.URL, http://www.***.com) #设置要访问的URL pycurl.Curl().setopt(pycurl.MAXREDIRS, 5) #设置最大重定向次数 pycurl.Curl().set

探测web服务器质量——pycurl

pycurl是一个用C语言写的libcurl Python实现,功能非常强大,支持的操作协议有FTP.HTTP.HTTPS.TELNET等,可以理解为Linux下curl命令功能的Python封装,简单易用. 下面会通过调用pycurl提供的方法,实现web服务质量的情况,比如相应的HTTP状态码.请求延时.HTTP头信息.下载速度等,利用这些信息可以定位服务响应慢的具体环节. 一.模块常用方法说明 pycurl.Curl()类实现创建一个libcurl包的Curl句柄对象,无参数,下面介绍Cu

Python学习笔记-实现探测Web服务质量

pycurl是一个用C语言写的libcurl Python实现,功能非常强大,支持的操作协议后FTP.HTTP.HTTPS.TELNET等,可以理解成Linux下curl命令功能的Python封装,简单易用 本例通过调用pycurl提供的方法,实现探测Web服务质量的情况,比如响应HTTP状态码.请求延时.HTTP头信息.下载速度等,利用这些信息可以定位服务响应慢的具体环节. pycurl.Curl()类实现创建一个libcurl包的Curl句柄对象,无参数. close()方法,对应的libc

二、业务服务监控

二.业务服务监控 1.文件内容差异对比方法 difflib模块实现文件内容差异对比,difflib作为python的标准库模块,无需安装,作用是对比文本之间的差异,且支持输出可读性比较强的HTML文档,与linux下的diff命令相似.我们可以使用difflib对比代码,配置文件的差别,在版本控制方面是非常有用. (1)示例:两个字符串的差异对比 通过使用difflib模块实现两个字符串的差异对比,然后以版本控制风格进行输出 [/root/text1_lines.py] #! /usr/bin/