zoukankan      html  css  js  c++  java
  • python网络编程 — HTTP客户端

    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)
    

      

  • 相关阅读:
    unix文件权限
    jira部署,主机迁移,数据库迁移,jira
    c函数习记
    常用软介质下载
    Matlab interpgui
    LightOJ 1422
    【CODEFORCES】 A. Keyboard
    leetcode 230: Kth Smallest Element in a BST
    Vertica7 Native Connection Load Balance
    vlc模块间共享变量
  • 原文地址:https://www.cnblogs.com/ssooking/p/5879793.html
Copyright © 2011-2022 走看看