def test_http(self): addr_info = yield self.resolver.resolve( 'localhost', self.get_http_port(), socket.AF_INET) sock_addr = addr_info[0][1] trick = Trickle( socket.socket(socket.AF_INET), io_loop=self.io_loop) yield trick.connect(sock_addr) yield trick.write(b'GET / HTTP/1.1\r\n\r\n') headers = yield trick.read_until(b'\r\n\r\n') match = re.search(br'Content-Length: (\d+)\r\n', headers) content_length = int(match.group(1)) body = yield trick.read_bytes(content_length) self.assertEqual(b'hello', body)
def download(): sock = socket.socket(socket.AF_INET) trick = Trickle(sock) addr_info = yield resolver.resolve( 'xkcd.com', 80, socket.AF_INET) sock_addr = addr_info[0][1] yield trick.connect(sock_addr) yield trick.write(b'GET / HTTP/1.1\r\nHost: xkcd.com\r\n\r\n') headers = yield trick.read_until(b'\r\n\r\n') match = re.search(br'Content-Length: (\d+)\r\n', headers) content_length = int(match.group(1)) body = yield trick.read_bytes(content_length) print body