Esempio n. 1
0
 def requestFromBytes(data: bytes = b"") -> FrozenHTTPRequest:
     return FrozenHTTPRequest(
         method="GET",
         uri=DecodedURL.fromText("https://twistedmatrix.com/"),
         headers=FrozenHTTPHeaders(rawHeaders=()),
         body=data,
     )
Esempio n. 2
0
    def uri(self):
        # type: () -> DecodedURL
        request = self._request

        # This code borrows from t.w.server.Request._prePathURL.

        if request.isSecure():
            scheme = u"https"
        else:
            scheme = u"http"

        netloc = nativeString(request.getRequestHostname())

        port = request.getHost().port
        if request.isSecure():
            default = 443
        else:
            default = 80
        if port != default:
            netloc += u":{}".format(port)

        path = nativeString(request.uri)
        if path and path[0] == u"/":
            path = path[1:]

        return DecodedURL.fromText(u"{}://{}/{}".format(scheme, netloc, path))
Esempio n. 3
0
    def uri(self) -> DecodedURL:
        request = self._request

        # This code borrows from t.w.server.Request._prePathURL.

        if request.isSecure():
            scheme = "https"
        else:
            scheme = "http"

        netloc = nativeString(request.getRequestHostname())

        port = request.getHost().port
        if request.isSecure():
            default = 443
        else:
            default = 80
        if port != default:
            netloc += f":{port}"

        path = nativeString(request.uri)
        if path and path[0] == "/":
            path = path[1:]

        return DecodedURL.fromText(f"{scheme}://{netloc}/{path}")
Esempio n. 4
0
    def uri(self):
        # type: () -> DecodedURL
        request = self._request

        # This code borrows from t.w.server.Request._prePathURL.

        if request.isSecure():
            scheme = u"https"
        else:
            scheme = u"http"

        netloc = nativeString(request.getRequestHostname())

        port = request.getHost().port
        if request.isSecure():
            default = 443
        else:
            default = 80
        if port != default:
            netloc += u":{}".format(port)

        path = nativeString(request.uri)
        if path and path[0] == u"/":
            path = path[1:]

        return DecodedURL.fromText(u"{}://{}/{}".format(scheme, netloc, path))
Esempio n. 5
0
 def test_initInvalidBodyType(self) -> None:
     """
     L{FrozenHTTPRequest} raises L{TypeError} when given a body of an
     unknown type.
     """
     e = self.assertRaises(
         TypeError,
         FrozenHTTPRequest,
         method="GET",
         uri=DecodedURL.fromText("https://twistedmatrix.com/"),
         headers=FrozenHTTPHeaders(rawHeaders=()),
         body=object(),
     )
     self.assertEqual(str(e), "body must be bytes or IFount")
Esempio n. 6
0
def urlFromRequest(request: IRequest) -> DecodedURL:
    sentHeader = request.getHeader(b"host")
    if sentHeader is not None:
        sentHeader = sentHeader.decode("charmap")
        if ":" in sentHeader:
            host, port = sentHeader.split(":")
            port = int(port)
        else:
            host = sentHeader
            port = None
    else:
        host = request.client.host
        port = request.client.port

    url = DecodedURL.fromText(request.uri.decode("charmap"))
    url = url.replace(
        scheme="https" if request.isSecure() else "http",
        host=host,
        port=port,
    )
    return url
Esempio n. 7
0
def urlFromRequest(request):
    # type: (IRequest) -> DecodedURL
    sentHeader = request.getHeader(b"host")
    if sentHeader is not None:
        sentHeader = sentHeader.decode("charmap")
        if ":" in sentHeader:
            host, port = sentHeader.split(":")
            port = int(port)
        else:
            host = sentHeader
            port = None
    else:
        host = request.client.host
        port = request.client.port
        if not isinstance(host, text_type):
            host = host.decode("ascii")

    url = DecodedURL.fromText(request.uri.decode("charmap"))
    url = url.replace(
        scheme=u"https" if request.isSecure() else u"http",
        host=host,
        port=port,
    )
    return url