import pycurl

import sys

import os

import random

import string

import time

class Transaction(object):

  def __init__(self):

    pass

def run(self):

    c = pycurl.Curl()

    f=open(os.devnull, 'wb')

    c.setopt(c.URL,'http://localhost/GeeHP5M1080P.mp4')

    c.setopt(c.WRITEDATA,f)  #write download content to dev null

    c.setopt(c.HTTPHEADER,["User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)",

        "Accept: */*",                 "Range: bytes=0-",                 "GetContentFeatures.DLNA.ORG: 1",                 "Pragma: getIfoFileURI.dlna.org",                   "Accept-Language: zh-CN",                 "Accept-Encoding: gzip, deflate",                 "DNT: 1",                 "Host: {Host}"])

     #c.setopt(c.BUFFERSIZE,655360)

    c.setopt(c.LOW_SPEED_LIMIT,655360)

    #c.setopt(c.MAX_RECV_SPEED_LARGE, 10485760)

    #c.setopt(c.PROGRESSFUNCTION,self.progress)

    c.setopt(c.FOLLOWLOCATION,1)

    c.setopt(c.MAXREDIRS,5)

    c.setopt(c.VERBOSE,1)

    c.setopt(c.NOPROGRESS, 0)

    c.perform()

      http_code=c.getinfo(c.HTTP_CODE)

      http_conn_time=c.getinfo(c.CONNECT_TIME)

      http_pre_tran=c.getinfo(c.PRETRANSFER_TIME)

      http_start_tran=c.getinfo(c.STARTTRANSFER_TIME)

      http_total_time=c.getinfo(c.TOTAL_TIME)

      http_size=c.getinfo(c.SIZE_DOWNLOAD)

      http_rate=c.getinfo(c.SPEED_DOWNLOAD)

    #print "http_code: %d"%(http_code)

    #print "http_conn_time: %d"%(http_conn_time)

    #print "http_pre_tran: %f"%(http_pre_tran)

      #print "http_start_tran: %f"%(http_start_tran)

    #print "http_total_time: %f"%(http_total_time)

    #print "http_size: %f"%(http_size)

    #print "http_rate: %f"%(http_rate)

if __name__ == '__main__':

  trans = Transaction()

  trans.run()

pcurl 学习 http文件下载及写入空设备文件实例的更多相关文章

  1. flask 中使用蓝图将路由分开写在不同文件

    flask 若想将不同的路由写在不同的文件中(如将 user 对象的相关接口写在一个文件中,将 customer 对象的相关接口写在另一个文件中),可以使用蓝图来实现. 有关蓝图的定义:A Bluep ...

  2. [Android L]SEAndroid开放设备文件结点权限(读或写)方法(涵盖常用操作:sys/xxx、proc/xxx、SystemProperties)

    温馨提示      建议你先了解一下上一篇博文([Android L]SEAndroid增强Androd安全性背景概要及带来的影响)所讲的内容,先对SEAndroid窥个全貌,然后再继续本节内容.   ...

  3. java之jvm学习笔记五(实践写自己的类装载器)

    java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...

  4. 深度学习之 mnist 手写数字识别

    深度学习之 mnist 手写数字识别 开始学习深度学习,先来一个手写数字的程序 import numpy as np import os import codecs import torch from ...

  5. Linux学习之CentOS(六)---mount挂载设备(u盘,光盘,iso等 )

    对于新手学习,mount 命令,一定会有很多疑问.其实我想疑问来源更多的是对linux系统本身特殊性了解问题. linux是基于文件系统,所有的设备都会对应于:/dev/下面的设备.如: [cheng ...

  6. 由于想要实现下载的文件可以进行选择,而不是通过<a>标签写死下载文件的参数,所以一直想要使用JFinal结合ajax实现文件下载,但是ajax实现的文件下载并不能触发浏览器的下载文件弹出框,这里通过模拟表单提交实现同样的效果。

    由于想要实现下载的文件可以进行选择,而不是通过<a>标签写死下载文件的参数,所以一直想要使用JFinal结合ajax实现文件下载(这样的话ajax可以传递不同的参数),但是ajax实现的文 ...

  7. iOS学习笔记-自己动手写RESideMenu

    代码地址如下:http://www.demodashi.com/demo/11683.html 很多app都实现了类似RESideMenu的效果,RESideMenu是Github上面一个stars数 ...

  8. 教你写Linux设备驱动程序:一个简短的教程

    教你写Linux设备驱动程序:一个简短的教程 http://blog.chinaunix.net/uid-20799298-id-99675.html

  9. 学习js与css 写个2048

    学习阶段,还是写点小东西练练手学的有意思一点,今天用栅格布局做了一个2048,但是移动动画和合并特效没有做,只简单的实现了一下功能. 记录一下学习的过程. 1.入口函数,初始化界面,我这里是直接是一个 ...

随机推荐

  1. JSP简单练习-定时刷新页面

    <%@ page contentType="text/html; charset=gb2312" %> <%@ page import="java.ut ...

  2. Redis自学笔记–Zset类型及管理简述

    Zset类型                                                                                               ...

  3. (转)PlayerPrefs游戏存档

    unity3d提供了一个用于本地持久化保存与读取的类——PlayerPrefs.工作原理非常简单,以键值对的形式将数据保存在文件中,然后程序可以根据这个名称取出上次保存的数值.    PlayerPr ...

  4. Linux shell 脚本入门教程+实例

    原文:http://www.wiquan.com/article/136 为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是shell仍然是一个非常灵活的工具.She ...

  5. [Backbone] Verying Views

    Below we have our AppointmentsView instance rendering and then taking the rendered HTML and insertin ...

  6. 支持各种控件上/下拉刷新的android-pulltorefresh

    android- pulltorefresh 一个强大的拉动刷新开源项目,支持各种控件下拉刷新,如ListView.ViewPager.WevView. ExpandableListView.Grid ...

  7. C#.NET常见问题(FAQ)-浮点数如何四舍五入

    使用Math.Round方法即可实现保留指定的小数点后面位数,这种方法返回的还是double类型,而ToString方法并没有做实际转换   更多教学视频和资料下载,欢迎关注以下信息: 我的优酷空间: ...

  8. UE如何使用正则表达式

    1 基本概念 元字符: 元字符 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符() \d 匹配数字 \b 匹配单词的开始或结束 \W 匹配任意不是字母 ...

  9. Ajax中文传参出现乱码

    Ajax技术的核心为Javascript,而javascript使用的是UTF-8编码,因此在页面采用GBK或者其他编码,同时没有进行编码转换时,就会出现中文乱码的问题. 以下是分别使用GET和POS ...

  10. 通过修改css文件来观察openerp表单中的col和colspan

    适用版本 openerp 6.1.1 问题的提出 在openerp的表单定义中, 要使用 colspan和col 指你定各个元素的占位, 前者说明了本元素占据其所在容器的列数, 后者说明了本元素作为容 ...