summaryrefslogtreecommitdiff
path: root/examples/fetch1.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/fetch1.py')
-rw-r--r--examples/fetch1.py26
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():