Esempio n. 1
0
def action_delete():
    vip = sys.argv[3]
    h = HTTP('home.shaunkruger.com:8087')
    h.putrequest('DELETE','/module/mod_cluster_admin/vip/'+vip)
    h.putheader('Authorization','Basic '+base64.standard_b64encode('skruger:testing'))
    h.endheaders()
    errcode, errmsg, headers = h.getreply()
    if errcode == 200:
         f = h.getfile()
         print f.read()
    return
Esempio n. 2
0
def gethttpfile(url, size=1024 * 1024):
    from urllib import splithost
    from httplib import HTTP
    if not url.startswith('http:'):
        raise ValueError, "URL %s" % url
    host, selector = splithost(url[5:])
    h = HTTP(host)
    h.putrequest('GET', url)
    h.endheaders()
    h.getreply()
    res = h.getfile().read(size)
    h.close()
    return res
Esempio n. 3
0
def gethttpfile(url, size=1024*1024):
  from urllib import splithost
  from httplib import HTTP
  if not url.startswith('http:'):
    raise ValueError, "URL %s" % url
  host, selector = splithost(url[5:])
  h = HTTP(host)
  h.putrequest('GET', url)
  h.endheaders()
  h.getreply()
  res = h.getfile().read(size)
  h.close()
  return res
Esempio n. 4
0
def httpread( url_base, url_tail ):

	url_content = ""
	
	h = HTTP( url_base )
	h.putrequest( 'GET', url_tail )
	h.putheader('Accept', 'text/html')
	h.putheader('Accept', 'text/plain')
	h.endheaders()
	errcode, errmsg, headers = h.getreply()
	if errcode == 200:
		f = h.getfile()
	url_content = f.read() # Print the raw HTML

	return url_content
Esempio n. 5
0
 def RetrieveAsFile(self, host, path=''):
     from httplib import HTTP
     try:
         h = HTTP(host)
     except:
         self.logprint("Failed to create HTTP connection to %s... is the network available?" % (host))
         return None
     h.putrequest('GET',path)
     h.putheader('Accept','text/html')
     h.putheader('Accept','text/plain')
     h.endheaders()
     errcode, errmsg, headers = h.getreply()
     if errcode != 200:
         self.logprint("HTTP error code %d: %s" % (errcode, errmsg))
         return None
     f = h.getfile()
     return f
Esempio n. 6
0
 def RetrieveAsFile(self, host, path=''):
     from httplib import HTTP
     try:
         h = HTTP(host)
     except:
         self.logprint(
             "Failed to create HTTP connection to %s... is the network available?"
             % (host))
         return None
     h.putrequest('GET', path)
     h.putheader('Accept', 'text/html')
     h.putheader('Accept', 'text/plain')
     h.endheaders()
     errcode, errmsg, headers = h.getreply()
     if errcode != 200:
         self.logprint("HTTP error code %d: %s" % (errcode, errmsg))
         return None
     f = h.getfile()
     return f
Esempio n. 7
0
    def __makeRequest(self, url, path):

        from httplib import HTTP

        http = HTTP(HTTP_PROXY or url.replace("http://", ""))
        http.putrequest("GET", url + path)
        http.putheader("Accept", "text/plain")
        http.endheaders()
        htcode, errmsg, headers = http.getreply()

        if htcode not in (200, 403, 404):
            raise HTTPCaptachaUnexpectedResponse(htcode, errmsg)
        #endif

        file = http.getfile()
        content = file.read()
        file.close()

        return htcode, content
Esempio n. 8
0
    def __makeRequest(self, url, path):

        from httplib import HTTP

        http = HTTP(HTTP_PROXY or url.replace("http://", ""))
        http.putrequest("GET", url + path)
        http.putheader("Accept", "text/plain")
        http.endheaders()
        htcode, errmsg, headers = http.getreply()

        if htcode not in (200, 403, 404):
            raise HTTPCaptachaUnexpectedResponse(htcode, errmsg)
        # endif

        file = http.getfile()
        content = file.read()
        file.close()

        return htcode, content
Esempio n. 9
0
def get(host,port,url):

	concaturl = host+url
	print "Checking Host:",concaturl
	h = HTTP(host, port)
	h.putrequest('GET', url)
	h.putheader('Host', host)
	h.putheader('User-agent', 'python-httplib')
	h.endheaders()

	time.sleep(1)
	(returncode, returnmsg, headers) = h.getreply()
	if returncode != 200:
		print returncode,returnmsg
		return returncode

	else:
		f = h.getfile()
		# return f.read() #returns content of page for further parsing
		print returncode, returnmsg
		return returncode
Esempio n. 10
0
	def server_lookup(self, addr):
		req = HTTP("deinadmin.de")
		req.putrequest("GET", "/projects/pharmcheck/pharmcheck.php?name=" + addr)
		req.putheader("Host", "deinadmin.de")
		req.putheader("User-Agent", "pharmcheck v0.3 2005-08-14")
		req.endheaders()
		ec, em, h = req.getreply()

		if (ec != 200):
			return [-2, ec, em]
		else:
			fd=req.getfile()
		
			lines=[]
			line=fd.readline()
			while line:
				lines.append(line[:-1])		# \n abschneiden. windows-kompatibel?
				line=fd.readline()

			fd.close()
			return [1, lines]
Esempio n. 11
0
def action_list():
    h = HTTP(surrogate_conf.get('hostname'))
    h.putrequest('GET','/module/mod_cluster_admin/vip')
    userpass = "******" % (surrogate_conf.get('username'),surrogate_conf.get('password'))
    h.putheader('Authorization','Basic '+base64.standard_b64encode(userpass))
    h.endheaders()
    errcode, errmsg, headers = h.getreply()
    if errcode == 200:
        f = h.getfile()
        data= f.read()
        vip = json.loads(data)  # Convert json string to python array object
        formatstr = "%-35s %-8s %s"  # reusable format string for header and data output lines
        print formatstr % ("Address", "Status","Nodes")
        print "==============================================================================="
        for v in vip["items"]:
            print formatstr % (v["address"], v["status"],v["nodes"])
    elif errcode == 401:
        print "Authentication error."
    else:
        print "HTTP %s: %s" % (errcode,errmsg)
    return
Esempio n. 12
0
 def send_request(self, request, response):
     h = HTTP(urlparse(request.uri)[1])  #TODO: split out port, userinfo
     h.putrequest(request.method, request.uri)
     for field_name, field_value in request.representation.headers.items():
         if field_name == "Content-Length": continue
         h.putheader(field_name, field_value.string)
     if request.representation.has_body:
         h.putheader('Content-Length', str(len(request.representation.body))) #FIXME: hmm. accesses body. options?
     h.putheader('User-Agent', self.user_agent) # FIXME: use header dict, don't override
     h.endheaders()
     if request.representation.has_body:
         h.send(request.representation.body) #FIXME: use iterator?
     status_code, status_phrase, headers = h.getreply()
     response_type = status.lookup.get(status_code, None)
     if response_type is not None:
         response.__class__ = response_type
     response.status_code = status_code
     response.status_phrase = status_phrase
     response.representation.headers.parseMessage(headers)  #FIXME: split entity and message hdrs
     response.representation._body_iter = h.getfile() #FIXME: iterator, shouldn't have to do this _ ...
     if not isinstance(response, status.Successful):
         raise response
Esempio n. 13
0
def download_web_page(domain, url):
    try:
        h = HTTP(domain)
        h.putrequest("GET", url)
        h.putheader('Accept', 'text/html')
        h.putheader('Accept', 'text/plain')
        h.endheaders()
    except:
        return(None)
    print "Placed request, downloading web page..."
    try:
        errcode, errmsg, headers = h.getreply()
    except:
        sys.stderr.write("Error in receiving response from " + domain + \
                         '\n')
        return None
    if errcode != 200:
        sys.stderr.write("Error in receiving response from " + domain + \
                         '\n')
        return None
    results = h.getfile().read()
    return(results)
Esempio n. 14
0
def download_web_page(domain, url):
    try:
        h = HTTP(domain)
        h.putrequest("GET", url)
        h.putheader('Accept', 'text/html')
        h.putheader('Accept', 'text/plain')
        h.endheaders()
    except:
        return (None)

    try:
        errcode, errmsg, headers = h.getreply()
    except:
        sys.stderr.write("Error in receiving response from " + domain + \
                         '\n')
        return None
    if errcode != 200:
        sys.stderr.write("Error in receiving response from " + domain + \
                         '\n')
        return None
    results = h.getfile().read()
    return (results)
Esempio n. 15
0
    def __call__(self,*args,**kw):
        method=self.method
        if method=='PUT' and len(args)==1 and not kw:
            query=[args[0]]
            args=()
        else:
            query=[]
        for i in range(len(args)):
            try:
                k=self.args[i]
                if kw.has_key(k): raise TypeError, 'Keyword arg redefined'
                kw[k]=args[i]
            except IndexError:    raise TypeError, 'Too many arguments'

        headers={}
        for k, v in self.headers.items(): headers[translate(k,dashtrans)]=v
        method=self.method
        if headers.has_key('Content-Type'):
            content_type=headers['Content-Type']
            if content_type=='multipart/form-data':
                return self._mp_call(kw)
        else:
            content_type=None
            if not method or method=='POST':
                for v in kw.values():
                    if hasattr(v,'read'): return self._mp_call(kw)

        can_marshal=type2marshal.has_key
        for k,v in kw.items():
            t=type(v)
            if can_marshal(t): q=type2marshal[t](k,v)
            else: q='%s=%s' % (k,quote(v))
            query.append(q)

        url=self.rurl
        if query:
            query='&'.join(query)
            method=method or 'POST'
            if method == 'PUT':
                headers['Content-Length']=str(len(query))
            if method != 'POST':
                url="%s?%s" % (url,query)
                query=''
            elif not content_type:
                headers['Content-Type']='application/x-www-form-urlencoded'
                headers['Content-Length']=str(len(query))
        else: method=method or 'GET'

        if (self.username and self.password and
            not headers.has_key('Authorization')):
            headers['Authorization']=(
                "Basic %s" %
                encodestring('%s:%s' % (self.username,self.password)).replace(
                                     '\012','')
                )

        try:
            h=HTTP(self.host, self.port)
            h.putrequest(method, self.rurl)
            for hn,hv in headers.items():
                h.putheader(translate(hn,dashtrans),hv)
            h.endheaders()
            if query: h.send(query)
            ec,em,headers=h.getreply()
            response     =h.getfile().read()
        except:
            raise NotAvailable, RemoteException(
                NotAvailable,sys.exc_info()[1],self.url,query)
        if (ec - (ec % 100)) == 200:
            return (headers,response)
        self.handleError(query, ec, em, headers, response)
Esempio n. 16
0
        errcode, errmsg, headers = http.getreply()

        if errcode != 200:
            print "Content-Type: text/html"
            print
            print "<html><body>Failed to load URL: %d</body></html>" % errcode
        else:
            if headers.has_key("Content-Type"):
                print "Content-Type: " + headers["Content-Type"]
            else:
                print "Content-Type: text/plain"

            print

            file = http.getfile()
            whole_body_re = compile(
                "(?P<before>.*)(?P<body>\\<[bB][oO][dD][yY]( [^>]*)?\\>)(?P<after>.*)"
            )
            begin_body_re = compile(
                "(?P<before>.*)(?P<body>\\<[bB][oO][dD][yY])(?P<after>.*)")
            end_body_re = compile("(?P<before>.*)(?P<body>\\>)(?P<after>.*)")

            whole_head_re = compile(
                "(?P<before>.*)(?P<head>\\<[hH][eE][aA][dD]( [^>]*)?\\>)(?P<after>.*)"
            )
            begin_head_re = compile(
                "(?P<before>.*)(?P<head>\\<[hH][eE][aA][dD])(?P<after>.*)")
            end_head_re = compile("(?P<before>.*)(?P<head>\\>)(?P<after>.*)")

            base_href_re = compile("(http://([^/]*/)*)[^/]*")
Esempio n. 17
0
    def __call__(self, *args, **kw):
        method = self.method
        if method == 'PUT' and len(args) == 1 and not kw:
            query = [args[0]]
            args = ()
        else:
            query = []
        for i in range(len(args)):
            try:
                k = self.args[i]
                if kw.has_key(k): raise TypeError, 'Keyword arg redefined'
                kw[k] = args[i]
            except IndexError:
                raise TypeError, 'Too many arguments'

        headers = {}
        for k, v in self.headers.items():
            headers[translate(k, dashtrans)] = v
        method = self.method
        if headers.has_key('Content-Type'):
            content_type = headers['Content-Type']
            if content_type == 'multipart/form-data':
                return self._mp_call(kw)
        else:
            content_type = None
            if not method or method == 'POST':
                for v in kw.values():
                    if hasattr(v, 'read'): return self._mp_call(kw)

        can_marshal = type2marshal.has_key
        for k, v in kw.items():
            t = type(v)
            if can_marshal(t): q = type2marshal[t](k, v)
            else: q = '%s=%s' % (k, quote(v))
            query.append(q)

        url = self.rurl
        if query:
            query = '&'.join(query)
            method = method or 'POST'
            if method == 'PUT':
                headers['Content-Length'] = str(len(query))
            if method != 'POST':
                url = "%s?%s" % (url, query)
                query = ''
            elif not content_type:
                headers['Content-Type'] = 'application/x-www-form-urlencoded'
                headers['Content-Length'] = str(len(query))
        else:
            method = method or 'GET'

        if (self.username and self.password
                and not headers.has_key('Authorization')):
            headers['Authorization'] = ("Basic %s" % encodestring(
                '%s:%s' % (self.username, self.password)).replace('\012', ''))

        try:
            h = HTTP(self.host, self.port)
            h.putrequest(method, self.rurl)
            for hn, hv in headers.items():
                h.putheader(translate(hn, dashtrans), hv)
            h.endheaders()
            if query: h.send(query)
            ec, em, headers = h.getreply()
            response = h.getfile().read()
        except:
            raise NotAvailable, RemoteException(NotAvailable,
                                                sys.exc_info()[1], self.url,
                                                query)
        if (ec - (ec % 100)) == 200:
            return (headers, response)
        self.handleError(query, ec, em, headers, response)
Esempio n. 18
0
from httplib import HTTP

request = HTTP('apis.skplanetx.com')
url = '/tmap/traffic?centerLon=126.976937&centerLat=37.575432&version=1&trafficType=AROUND&reqCoordType=WGS84GEO&zoomLevel=14&radius=1&resCoordType=WGS84GEO'
request.putrequest('GET', url)

request.putheader('x-skpop-userId', 'game2k')
request.putheader('Accept-Language', 'ko_KR')
request.putheader('Accept', 'application/json')
request.putheader('access_token', '')
#request.putheader('appKey','')
request.putheader('Host', 'apis.skplanetx.com')
request.endheaders()

errorCode, errorMessage, headers = request.getreply()
print errorCode, errorMessage

fobj = request.getfile()
html = fobj.read()
fobj.close()
print html
#"GET /
Esempio n. 19
0
hostname = "www.dtinet.or.jp"
url = "/~tpc/address.htm"

print "TPC News Address Updater   1997.02.10 23:20JST  [email protected]"
print "Making connection to http://%s%s..." % (hostname, url)
h = HTTP(hostname)
h.putrequest('GET', url)
h.putheader('Accept', 'text/html')
h.putheader('Accept', 'text/plain')
h.endheaders()
errcode, errmsg, headers = h.getreply()
if errcode != 200:
    print "Unable to connect"

print "Reading current address..."
f = h.getfile()
cahtml = f.readlines()
f.close()
print " ", cahtml[1]

windir = "C:\WINDOWS"
if os.environ.has_key("windir"):
    windir = os.environ["windir"]

print "Updating %s\HOSTS..." % (windir)
fin = open("%s\HOSTS" % (windir), "r")
hosts = fin.readlines()
fin.close()

prog = regex.compile("news\.tokyopc\.bbs\.net", regex.casefold)
fout = open("%s/HOSTS.NEW" % (windir), "w")
Esempio n. 20
0
from urllib import splithost
from httplib import HTTP

if os.path.exists("/dev/shm"):
    TMPDIR = "/dev/shm"
else:
    TMPDIR = "/tmp"
TMPDIR += "/hda-analyzer"
print "Using temporary directory: %s" % TMPDIR
print "You may remove this directory when finished or if you like to"
print "download the most recent copy of hda-analyzer tool."
if not os.path.exists(TMPDIR):
    os.mkdir(TMPDIR)
for f in FILES:
    dest = TMPDIR + '/' + f
    if os.path.exists(dest):
        print "File cached " + dest
        continue
    print "Downloading file %s" % f
    host, selector = splithost(URL[5:])
    h = HTTP(host)
    h.putrequest('GET', URL + f)
    h.endheaders()
    h.getreply()
    contents = h.getfile().read(2 * 1024 * 1024)
    h.close()
    open(dest, "w+").write(contents)
print "Downloaded all files, executing %s" % FILES[0]
os.system("python2 %s" % TMPDIR + '/' + FILES[0] + ' ' +
          ' '.join(sys.argv[1:]))
Esempio n. 21
0
		('Accept-Language', 'en'),
		('Pragma', 'no-cache'),
		('Cache-Control', 'no-cache'),
		('User-Agent', 'Lynx/2.6  libwww-FM/2.14'),
		('From', '"a-fan" <*****@*****.**>'),
		('Referer', 'http://www.comcentral.com/mst/mstpoll.htm'),
		('Content-type', 'application/x-www-form-urlencoded'),
		('Content-length', '8')]

	text='vote=' + str(episode)

	n = n - 1
	h = HTTP('www.comcentral.com')
	h.debuglevel = 1
	h.putrequest('POST', '/cgi-bin/rbox/pollboy.pl')
	for (hn, hv) in headers:
		if (hn == 'From'):
			hv = 'user' + str(n) + '@blah.com'
		h.putheader(hn, hv)
		#print "hn:", hn, "hv:", hv

	h.endheaders()

	h.send(text)

	errcode, errmsg, headers = h.getreply()
	if errcode == 200:
		f = h.getfile()
		print f.read() # Print the raw HTML

Esempio n. 22
0
        errcode, errmsg, headers = http.getreply()

        if errcode != 200:
            print "Content-Type: text/html"
            print
            print "<html><body>Failed to load URL: %d</body></html>" % errcode
        else:
            if headers.has_key("Content-Type"):
                print "Content-Type: " + headers["Content-Type"]
            else:
                print "Content-Type: text/plain"

            print
            
            file = http.getfile()
            whole_body_re = compile("(?P<before>.*)(?P<body>\\<[bB][oO][dD][yY]( [^>]*)?\\>)(?P<after>.*)")
            begin_body_re = compile("(?P<before>.*)(?P<body>\\<[bB][oO][dD][yY])(?P<after>.*)")
            end_body_re = compile("(?P<before>.*)(?P<body>\\>)(?P<after>.*)")

            whole_head_re = compile("(?P<before>.*)(?P<head>\\<[hH][eE][aA][dD]( [^>]*)?\\>)(?P<after>.*)")
            begin_head_re = compile("(?P<before>.*)(?P<head>\\<[hH][eE][aA][dD])(?P<after>.*)")
            end_head_re = compile("(?P<before>.*)(?P<head>\\>)(?P<after>.*)")
            
            base_href_re = compile("(http://([^/]*/)*)[^/]*")
            body_not_found = 1
            body_begin_found = 0
            head_not_found = 1
            head_begin_found = 0
            script = "<script id=\"inspector-script\" src=\"http://YOUR-HOST-HERE/PATH/inspector.js\"></script>"
            base = "<base href=\"" + base_href_re.match(form["url"].value).group(1) + "\">"
Esempio n. 23
0
def http_import(self, url, method='GET', auth=None, parse_qs=0, timeout=5):

    HTTP_PREFIX = 'http://'

    # Get Query-String.
    qs = ''
    i = url.find('?')
    if i > 0:
        qs = url[i + 1:]
        url = url[:i]

    # Get Host.
    host = ''
    servername = url
    if servername.startswith(HTTP_PREFIX):
        servername = servername[len(HTTP_PREFIX):]
    if servername.find('/') > 0:
        servername = servername[:servername.find('/')]
    useproxy = True
    noproxy = ['localhost', '127.0.0.1'] + filter(
        lambda x: len(x) > 0,
        map(lambda x: x.strip(),
            self.getConfProperty('HTTP.noproxy', '').split(',')))
    for noproxyurl in noproxy:
        if fnmatch.fnmatch(servername, noproxyurl):
            useproxy = False
            break
    if useproxy:
        host = self.getConfProperty('HTTP.proxy', host)

    if len(host) == 0:
        # Remove HTTP-Prefix.
        if url.startswith(HTTP_PREFIX):
            url = url[len(HTTP_PREFIX):]

        i = url.find('/')
        if i > 0:
            host = url[:i]
            url = url[i:]
        else:
            host = url
            url = '/'

    # Get Port.
    i = host.find(':', max(0, host.find('@')))
    port = 80
    if i > 0:
        port = int(host[i + 1:])
        host = host[:i]

    # Open HTTP connection.
    writeLog(
        self,
        "[http_import.%s]: %s:%i --> %s?%s" % (method, host, port, url, qs))
    req = HTTP(host, port)

    # Set request-headers.
    if method.upper() == 'GET':
        if len(qs) > 0:
            qs = '?' + qs
        req.putrequest(method, url + qs)
        req.putheader('Host', host)
        authtobasic(auth, req)
        req.putheader('Accept', '*/*')
        req.endheaders()
    elif method.upper() == 'POST':
        req.putrequest(method, url)
        req.putheader('Host', host)
        authtobasic(auth, req)
        req.putheader('Accept', '*/*')
        req.putheader('Content-type', 'application/x-www-form-urlencoded')
        req.putheader('Content-length', '%d' % len(qs))
        req.endheaders()
        # Send query string
        req.send(qs)

    # Send request.
    reply_code, message, headers = req.getreply()

    #### get parameter from content
    if reply_code == 404 or reply_code >= 500:
        error = "[%i]: %s at %s [%s]" % (reply_code, message, url, method)
        writeLog(self, "[http_import.error]: %s" % error)
        raise zExceptions.InternalError(error)
    elif reply_code == 200:
        # get content
        f = req.getfile()
        content = f.read()
        f.close()
        rtn = None
        if parse_qs:
            try:
                # return dictionary of value lists
                rtn = cgi.parse_qs(content,
                                   keep_blank_values=1,
                                   strict_parsing=1)
            except:
                # return string
                rtn = content
        else:
            # return string
            rtn = content
            if port != 80:
                rtn = rtn.replace('%s%s/' % (HTTP_PREFIX, host),
                                  '%s%s:%i/' % (HTTP_PREFIX, host, port))
        return rtn
    else:
        result = '[' + str(reply_code) + ']: ' + str(message)
        writeLog(self, "[http_import.result]: %s" % result)
        return result
Esempio n. 24
0
from httplib import HTTP

req = HTTP("www.zoo-berlin.de")
req.putrequest("GET", "/?Knut")
req.putheader("Accept", "text/html")
req.putheader("User-Agent", "Python26")
req.endheaders()

ec, em, h = req.getreply()
print ec, em

fd = req.getfile()
textlines = fd.read()
print textlines
fd.close()
Esempio n. 25
0
    def __call__(self, *args, **kw):
        method = self.method
        if method == "PUT" and len(args) == 1 and not kw:
            query = [args[0]]
            args = ()
        else:
            query = []
        for i in range(len(args)):
            try:
                k = self.args[i]
                if kw.has_key(k):
                    raise TypeError, "Keyword arg redefined"
                kw[k] = args[i]
            except IndexError:
                raise TypeError, "Too many arguments"

        headers = {}
        for k, v in self.headers.items():
            headers[translate(k, dashtrans)] = v
        method = self.method
        if headers.has_key("Content-Type"):
            content_type = headers["Content-Type"]
            if content_type == "multipart/form-data":
                return self._mp_call(kw)
        else:
            content_type = None
            if not method or method == "POST":
                for v in kw.values():
                    if hasattr(v, "read"):
                        return self._mp_call(kw)

        can_marshal = type2marshal.has_key
        for k, v in kw.items():
            t = type(v)
            if can_marshal(t):
                q = type2marshal[t](k, v)
            else:
                q = "%s=%s" % (k, quote(v))
            query.append(q)

        url = self.rurl
        if query:
            query = join(query, "&")
            method = method or "POST"
            if method == "PUT":
                headers["Content-Length"] = str(len(query))
            if method != "POST":
                url = "%s?%s" % (url, query)
                query = ""
            elif not content_type:
                headers["Content-Type"] = "application/x-www-form-urlencoded"
                headers["Content-Length"] = str(len(query))
        else:
            method = method or "GET"

        if self.username and self.password and not headers.has_key("Authorization"):
            headers["Authorization"] = "Basic %s" % gsub(
                "\012", "", encodestring("%s:%s" % (self.username, self.password))
            )

        try:
            h = HTTP()
            h.connect(self.host, self.port)
            h.putrequest(method, self.rurl)
            for hn, hv in headers.items():
                h.putheader(translate(hn, dashtrans), hv)
            h.endheaders()
            if query:
                h.send(query)
            ec, em, headers = h.getreply()
            response = h.getfile().read()
        except:
            raise NotAvailable, RemoteException(NotAvailable, sys.exc_value, self.url, query)

        if ec == 200:
            return (headers, response)
        self.handleError(query, ec, em, headers, response)
Esempio n. 26
0
from httplib import HTTP
req = HTTP("www.example.com")
req.putrequest("GET", "/index.html")
req.putheader("Accept", "text/html")
req.putheader("User-Agent", "MyPythonScript")
req.endheaders()
ec, em, h = req.getreply()
print(ec, em)
# 200 OK
fd = req.getfile()
textlines = fd.read()
fd.close()
Esempio n. 27
0
import sys
from urllib import splithost
from httplib import HTTP

if os.path.exists("/dev/shm"):
  TMPDIR="/dev/shm"
else:
  TMPDIR="/tmp"
TMPDIR += "/hda-analyzer"
print "Using temporary directory: %s" % TMPDIR
print "You may remove this directory when finished or if you like to"
print "download the most recent copy of hda-analyzer tool."
if not os.path.exists(TMPDIR):
  os.mkdir(TMPDIR)
for f in FILES:
  dest = TMPDIR + '/' + f
  if os.path.exists(dest):
    print "File cached " + dest
    continue
  print "Downloading file %s" % f
  host, selector = splithost(URL[5:])
  h = HTTP(host)
  h.putrequest('GET', URL + f)
  h.endheaders()
  h.getreply()
  contents = h.getfile().read(2*1024*1024)
  h.close()
  open(dest, "w+").write(contents)
print "Downloaded all files, executing %s" % FILES[0]
os.system("python %s" % TMPDIR + '/' + FILES[0] + ' ' + ' '.join(sys.argv[1:]))