diff options
Diffstat (limited to 'examples/fetch1.py')
-rw-r--r-- | examples/fetch1.py | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/examples/fetch1.py b/examples/fetch1.py index 8dbb6e4..9e9a1ca 100644 --- a/examples/fetch1.py +++ b/examples/fetch1.py @@ -3,10 +3,14 @@ This version adds URL parsing (including SSL) and a Response object. """ +from __future__ import print_function import sys -import urllib.parse +try: + from urllib.parse import urlparse +except ImportError: + from urlparse import urlparse -from asyncio import * +from trollius import * class Response: @@ -22,13 +26,15 @@ class Response: def read(self, reader): @coroutine def getline(): - return (yield from reader.readline()).decode('latin-1').rstrip() - status_line = yield from getline() + line = (yield From(reader.readline())) + line = line.decode('latin-1').rstrip() + raise Return(line) + status_line = yield From(getline()) if self.verbose: print('<', status_line, file=sys.stderr) self.http_version, status, self.reason = status_line.split(None, 2) self.status = int(status) while True: - header_line = yield from getline() + header_line = yield From(getline()) if not header_line: break if self.verbose: print('<', header_line, file=sys.stderr) @@ -40,7 +46,7 @@ class Response: @coroutine def fetch(url, verbose=True): - parts = urllib.parse.urlparse(url) + parts = urlparse(url) if parts.scheme == 'http': ssl = False elif parts.scheme == 'https': @@ -57,12 +63,12 @@ def fetch(url, verbose=True): request = 'GET %s HTTP/1.0\r\n\r\n' % path if verbose: print('>', request, file=sys.stderr, end='') - r, w = yield from open_connection(parts.hostname, port, ssl=ssl) + r, w = yield From(open_connection(parts.hostname, port, ssl=ssl)) w.write(request.encode('latin-1')) response = Response(verbose) - yield from response.read(r) - body = yield from r.read() - return body + yield From(response.read(r)) + body = yield From(r.read()) + raise Return(body) def main(): |