A simple http client.

It gets the contents of special webserver page and print it.(Default path is "/")

#!/usr/share/env python
#coding:utf-8 import argparse
import httplib #设置默认访问url和端口
REMOTE_SERVER_HOST='www.python.org'
REMOTE_SERVER_PATH='/' class HTTPClient(object):
"""
docstring for HTTPClient
Eg: python HTTPClient.py --host=www.iana.org
       python HTTPClient.py --host=www.iana.org --path='/domains/reserved'
"""
def __init__(self, host):
self.host = host def fetch(self,path):
http = httplib.HTTP(self.host) #设置请求头信息
http.putrequest("GET",path)
http.putheader("User-Agent",__file__)
http.putheader("Host",self.host)
http.putheader("Accept","*/*")
http.endheaders() try:
#getreply方法返回service code ,service reseason,RFC82 headers
errcode,errmsg,headers = http.getreply()
except Exception,e:
print "Client failed code: %s message: %s headers: %s" %(errcode,errmsg,headers)
else:
print "Got homepage from %s" %self.host #打印获取的内容
file = http.getfile()
return file.read() if __name__ == '__main__':
parse = argparse.ArgumentParser(description='HTTP Client Example')
parse.add_argument('--host',action="store",dest="host",default=REMOTE_SERVER_HOST)
parse.add_argument('--path',action="store",dest="path",default=REMOTE_SERVER_PATH)
given_args = parse.parse_args()
host,path = given_args.host,given_args.path
client = HTTPClient(host)
print client.fetch(path)

  

python网络编程 — HTTP客户端的更多相关文章

  1. python网络编程--TCP客户端的开发

    #导入socket模块 2 import socket 3 #参数说明 4 """ 5 socket类的介绍 6 创建客户端socket对象 7 socket.socke ...

  2. Python 网络编程(二)

    Python 网络编程 上一篇博客介绍了socket的基本概念以及实现了简单的TCP和UDP的客户端.服务器程序,本篇博客主要对socket编程进行更深入的讲解 一.简化版ssh实现 这是一个极其简单 ...

  3. Python 网络编程(一)

    Python 网络编程 socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. ...

  4. Python学习(22)python网络编程

    Python 网络编程 Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的 ...

  5. Day07 - Python 网络编程 Socket

    1. Python 网络编程 Python 提供了两个级别访问网络服务: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口 ...

  6. python网络编程-01

    python网络编程 1.socket模块介绍 ①在网络编程中的一个基本组件就是套接字(socket),socket是两个程序之间的“信息通道”. ②套接字包括两个部分:服务器套接字.客户机套接字 ③ ...

  7. python 网络编程(Socket)

    # from wsgiref.simple_server import make_server## def RunServer(environ,start_response):# start_resp ...

  8. python 网络编程 IO多路复用之epoll

    python网络编程——IO多路复用之epoll 1.内核EPOLL模型讲解     此部分参考http://blog.csdn.net/mango_song/article/details/4264 ...

  9. Python 网络编程相关知识学习

    Python 网络编程 Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的 ...

随机推荐

  1. win10的IIS配置

    安装IIS: 控制面板---程序---启用或关闭windows功能---Internet Information Services IIS  和 IIS 可承载的web核心 有何区别?  是否两个都必 ...

  2. 妙味H5交互篇备忘

      document.addEventListener( 'touchstart', function(e){ e.preventDefault(); } ); 在document上增加touchst ...

  3. Sipdroid实现SIP(六): SIP中的请求超时和重传

    目录 一. Sipdroid的请求超时和重传 二. SIP中超时和重传的定义 三. RFC中超时和重传的定义 一. Sipdroid的请求超时和重传 Sipdroid实现SIP协议栈系列, 之前的文章 ...

  4. 自定义配置文件的使用及加载-txt

    [Game] Version=1 [Login] Account = 阿斗阿斯顿撒 Password =我去饿我去恶趣味 Success = 成哥 Faild = 失败 [Job] Job1 = 战士 ...

  5. IOS网络请求中文转码

    -(void)get { NSString *urlStr = @"http://120.25.226.186:32812/login2?username=小码哥&pwd=520it ...

  6. Linux进程通信——管道

    管道(pipe)本质上是一种文件,管道通信本质上是通过读写文件通信,但是管道解决了文件的两个问题:限制管道大小,解决read()调用文件结束问题. 管道一个环形的缓冲区,通过两个进程以生产者/消费者的 ...

  7. 一步步优化JVM五:优化延迟或者响应时间

    本节的目标是做一些优化以满足对应用对延迟的需求.这次需要几个步骤,包括完善Java堆大小的配置,评估垃圾回收占用的时间和频率,也许还要尝试切换到不同的垃圾回收器,以及由于使用了不同的垃圾回收器,需要重 ...

  8. 64位Java开发平台的选择,如何区分JDK,Tomcat,eclipse的32位与64版本

    当你想下载Linux.JDK.Tomcat.eclipse时,你是下载32位版本还是64位版本?64位版本有两种,应该选哪一个? 当你看到这些内容:x86.x64.x86-32.x86-64.ia64 ...

  9. php取整

    php取整的方法一共有4中,分别是ceil(),floor(),round(),intval(). 1.ceil--向上取整,即不小于当前的下一个整数,如果有小数则进一位. 返回的是float类型 & ...

  10. MySQL语句相关经验总结

    1. 字段自减 UPDATE `table_name` SET `total`=IF(`total` < 1, 0, `total`-1) WHERE `id` = 1; 一般在做字段减法的时候 ...