def __call__(self): self.runtime.events.put((self.handler.onHTTPInit, (self.request,), {})) try: handle = urlopen(self.py_request) body = handle.read() except HTTPError as e: response = _HTTPResponse() response.setCode(e.code) response.setBody(e.read().decode('utf-8')) for k,v in e.info().items(): response.setHeader(k, v.strip()) self.runtime.events.put((self.handler.onHTTPResponse, (self.request, response), {})) except URLError as exc: import quark self.runtime.events.put((self.handler.onHTTPError, (self.request, quark.HTTPError(str(exc.reason))), {})) except Exception as exc: import quark self.runtime.events.put((self.handler.onHTTPError, (self.request, quark.HTTPError(str(exc))), {})) else: response = _HTTPResponse() response.setCode(handle.getcode()) response.setBody(body.decode('utf-8')) for k,v in handle.info().items(): response.setHeader(k, v.strip()) self.runtime.events.put((self.handler.onHTTPResponse, (self.request, response), {})) self.runtime.events.put((self.handler.onHTTPFinal, (self.request,), {}))
def __call__(self): self.runtime.events.put((self.handler.onHTTPInit, (self.request,), {})) try: handle = urllib2.urlopen(self.py_request) body = handle.read() except urllib2.HTTPError, e: response = _HTTPResponse() response.setCode(e.code) response.setBody(e.read()) for h in e.info().headers: k, v = h.split(":", 1) response.setHeader(k, v.strip()) self.runtime.events.put((self.handler.onHTTPResponse, (self.request, response), {}))
def __call__(self, environ, start_response): path = environ["PATH_INFO"] url = util.request_uri(environ) try: request_body_size = int(environ.get('CONTENT_LENGTH', 0)) except (ValueError): request_body_size = 0 request_body = environ['wsgi.input'].read(request_body_size) request = _HTTPRequest(url) request.setMethod(environ["REQUEST_METHOD"]) request.setBody(request_body) request.setHeader("Content-Type", environ["CONTENT_TYPE"]) request.setHeader("Content-Length", request_body_size) for key in environ: if key.startswith("HTTP_"): request.setHeader(key[5:], environ[key]) response = _HTTPResponse() with self.lock: servlet = self.servlets.get(path, None) if servlet is None: start_response("404 Not Found", [("Content-Type", "text/plain")]) yield "404 Not Found (%r)" % path return self.runtime.events.put((self.call_servlet, (servlet, request, response), {})) try: self.runtime.acquire() while not response._responded: self.runtime.wait(60) finally: self.runtime.release() for chunk in servlet.respond(environ, start_response, request, response): yield chunk
self.runtime.events.put((self.handler.onHTTPInit, (self.request,), {})) try: handle = urllib2.urlopen(self.py_request) body = handle.read() except urllib2.HTTPError, e: response = _HTTPResponse() response.setCode(e.code) response.setBody(e.read()) for h in e.info().headers: k, v = h.split(":", 1) response.setHeader(k, v.strip()) self.runtime.events.put((self.handler.onHTTPResponse, (self.request, response), {})) except urllib2.URLError as exc: self.runtime.events.put((self.handler.onHTTPError, (self.request, str(exc.reason)), {})) else: response = _HTTPResponse() response.setCode(handle.getcode()) response.setBody(body) for h in handle.info().headers: k, v = h.split(":", 1) response.setHeader(k, v.strip()) self.runtime.events.put((self.handler.onHTTPResponse, (self.request, response), {})) self.runtime.events.put((self.handler.onHTTPFinal, (self.request,), {})) class _QuarkWSAdapter(object): def __init__(self, ws): self.ws = ws def send(self, message):