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()

pycurl模块的更多相关文章

  1. Python 的PyCurl模块使用

    PycURl是一个C语言写的libcurl的python绑定库.libcurl 是一个自由的,并且容易使用的用在客户端的 URL 传输库.它的功能很强大,PycURL 是一个非常快速(参考多并发操作) ...

  2. http服务需要pycurl模块这样去监控服务

    最近运维还是比较空闲,写篇自己的心得体会.做过运维的应该都做过http服务了.像一些电子商城,或者是一些互联网公司,web的服务之类是至关重要的,近期看了刘天斯大哥的书觉得自己运维平台应该也可以这样去 ...

  3. python关于SSL的认证--pycurl模块使用

    今天在做微信支付退款接口的时候,因为需要使用到双向证书的认证,所以一开始是没有头绪的,后来在网上找到了相类似的教程,发现了pycurl模块,才成功实现了证书认证,教程链接:http://blog.cs ...

  4. python pycurl模块

    一.pycurl概述 PycURl是一个C语言写的libcurl的python绑定库.libcurl 是一个自由的,并且容易使用的用在客户端的 URL 传输库.它的功能很强大,在PyCURL的主页上介 ...

  5. 6.python探测Web服务质量方法之pycurl模块

    才开始学习的时候有点忽略了这个模块,觉得既然Python3提供了requests库,为什么多此一举学习这个模块.后来才发现pycurl在探测Web服务器的时候的强大. pycurl是一个用c语言写的l ...

  6. Zabbix使用Pycurl模块监控web页面状态

    由于网络的问题,zabbix自带web模块用不了,后台研发2b,老是更新正式环境安装包,导致一直出问题,老是给他们擦屁股,早说过这事,他们不配合,现在出问题了,挺爽,这锅我表示不背,就找了pycurl ...

  7. 爬虫:pycurl模块的使用说明

    pycurl参考文档:http://pycurl.io/docs/latest/index.html   是英文文档,看起来也不是特么吃力跟着做问题不大. #coding=utf-8 import p ...

  8. python学习笔记--pycurl模块安装遇到的问题。

    1.用easy_install安装的时候 [root@idayuan ~]# easy_install pycurl Searching for pycurl Best match: pycurl A ...

  9. 通过pycurl模块添加put和delete请求

    原文链接: http://anupamshakya.blogspot.com/2013/07/implementation-of-put-and-delete-in.html

随机推荐

  1. Mybatis-Generator逆向工程,复杂策略(Criteria拼接条件)

    基于上一篇修改 1.Generator配置文件修改,将targetRuntime改为MyBatis3 2.项目结构目录 这个xxxExample就是拼接条件用的 3.测试代码 注释写的很详细 publ ...

  2. pandas模块的基本用法

    一.读取文件 import pandas as pd data = pd.read_csv("F:\\ml\\机器学习\\01\\score.csv") #一般读取的是csv文件, ...

  3. Linux监控系统概览

    自从Linux系统诞生之始,监控系统就随之出现. 当然说到监控系统,我们就必须聊到SNMP协议,SNMP分为管理端(NMP)和被管理端. 管理端周期性的到被监控端采集数据,被监控端还需要有权限收集数据 ...

  4. LeetCode 282. Expression Add Operators

    原题链接在这里:https://leetcode.com/problems/expression-add-operators/ 题目: Given a string that contains onl ...

  5. Oracle ORA-00600[2662] 解决

    一.问题描述 1.数据库情况 1)数据库版本:11.2.0.4: 2)未开启归档: 3)没有备份:无RMAN备份.无DUMP备份: 4)数据库redo log 日志组,每组只有一个成员: 2.问题出现 ...

  6. Wireshark抓取本地回环接口数据包 RawCap.exe

    Wireshark提供了winpcap可以抓取远程网卡数据包...但我尝试了不成功.后来发现RawCap.exe不仅可以抓取回环接口数据包,远程跑了拿到pcap文件再打开用起来比winpcap更方便最 ...

  7. learning java 获取键盘输入

    通过Scanner类,获取键盘的输入 var sc = new Scanner(System.in); // while (sc.hasNext()){ // System.out.println(& ...

  8. Django系列(一):前期准备

    1.web应用 Web应用程序是一种可以通过web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件.应用程序有两种模式C/S.B/S.C/S是客户端 ...

  9. centos7haproxy+keepalive

    1部署keepalived 1.1下载keepalived源码包,并解压# wget http://www.keepalived.org/software/keepalived-1.4.2.tar.g ...

  10. 支持utf8的str_split函数

    <?php header("Content-type: text/html; charset=utf-8"); /** * 按字节数对字符串进行分片 * @param $st ...