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. ListView 拖拽

    private void ListView1_MouseMove(object sender, MouseEventArgs e) { Patientappointment appointment = ...

  2. 【图解】javaScript组成结构

  3. Java从零开始学二十九(大数操作(BigIntger、BigDecimal)

    一.BigInteger 如果在操作的时候一个整型数据已经超过了整数的最大类型长度long的话,则此数据就无法装入,所以,此时要使用BigInteger类进行操作. 不可变的任意精度的整数.所有操作中 ...

  4. 【Maven】IKAnalyzer 在Maven Repository不存在

    1.在mvnrepository里面找IKAnalyzer,这个中文分词包,一直没有找到,找到github,发现是一个国人写的. http://mvnrepository.com/search?q=I ...

  5. Codeforces Round #228 (Div. 1) C 贪心

    嘎嘎,今天被一些事耽误了,可是还是A了几个题目,这道题还不错 题目链接: 题意:两个人玩游戏,有N堆纸牌,纸牌上有数字,A每次仅仅能取N堆中的 当中一个的顶部的 纸牌,B仅仅能取N堆中的当中一个底部 ...

  6. ORA-01109:数据库未打开(解决)

    SQL> startup mountORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它SQL> shutdown immediateORA-01109: 数据库未打开 ...

  7. visudo精确用户赋权(sudo)

    原文BLOG:http://iminmin.blog.51cto.com/689308/455992 sudo" 是Unix/Linux平台上的一个非常有用的工具,允许为非根用户赋予一些合理 ...

  8. maven 创建web项目的标准目录结构

      maven 创建web项目的标准目录结构 CreateTime--2018年4月18日21:05:37 Author:Marydon 1.标准目录介绍(开发目录) 2.在eclipse下,目录展示 ...

  9. Java基础2-容器篇

    java基础2-容器篇 1.页首请关注 思维导航大纲 1.常用容器的类型层次结构 2.理解容器的常用思维大纲 a.空间 时间 concurrentModifyException 加载因子 3.常用类源 ...

  10. cocos2dx跟eclipse交叉编译“make: * No rule to make target `all' Stop”的解决方案

    cocos2dx和eclipse交叉编译“make: *** No rule to make target `all'. Stop”的解决方案 搞cocos2dx在eclipse上的交叉编译. 项目. ...