當前位置: 首頁>>代碼示例>>Python>>正文


Python client.HTTPClientFactory方法代碼示例

本文整理匯總了Python中twisted.web.client.HTTPClientFactory方法的典型用法代碼示例。如果您正苦於以下問題:Python client.HTTPClientFactory方法的具體用法?Python client.HTTPClientFactory怎麽用?Python client.HTTPClientFactory使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在twisted.web.client的用法示例。


在下文中一共展示了client.HTTPClientFactory方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: test_infiniteRedirection

# 需要導入模塊: from twisted.web import client [as 別名]
# 或者: from twisted.web.client import HTTPClientFactory [as 別名]
def test_infiniteRedirection(self):
        """
        When more than C{redirectLimit} HTTP redirects are encountered, the
        page request fails with L{InfiniteRedirection}.
        """
        def checkRedirectCount(*a):
            self.assertEqual(f._redirectCount, 13)
            self.assertEqual(self.infiniteRedirectResource.count, 13)

        f = client._makeGetterFactory(
            self.getURL('infiniteRedirect'),
            client.HTTPClientFactory,
            redirectLimit=13)
        d = self.assertFailure(f.deferred, error.InfiniteRedirection)
        d.addCallback(checkRedirectCount)
        return d 
開發者ID:proxysh,項目名稱:Safejumper-for-Desktop,代碼行數:18,代碼來源:test_webclient.py

示例2: test_afterFoundGet

# 需要導入模塊: from twisted.web import client [as 別名]
# 或者: from twisted.web.client import HTTPClientFactory [as 別名]
def test_afterFoundGet(self):
        """
        Enabling unsafe redirection behaviour overwrites the method of
        redirected C{POST} requests with C{GET}.
        """
        url = self.getURL('extendedRedirect?code=302')
        f = client.HTTPClientFactory(url, followRedirect=True, method=b"POST")
        self.assertFalse(
            f.afterFoundGet,
            "By default, afterFoundGet must be disabled")

        def gotPage(page):
            self.assertEqual(
                self.extendedRedirect.lastMethod,
                b"GET",
                "With afterFoundGet, the HTTP method must change to GET")

        d = client.getPage(
            url, followRedirect=True, afterFoundGet=True, method=b"POST")
        d.addCallback(gotPage)
        return d 
開發者ID:proxysh,項目名稱:Safejumper-for-Desktop,代碼行數:23,代碼來源:test_webclient.py

示例3: _getPage

# 需要導入模塊: from twisted.web import client [as 別名]
# 或者: from twisted.web.client import HTTPClientFactory [as 別名]
def _getPage(url, descriptor):
    """
    Fetch the body of the given url via HTTP, connecting to the given host
    and port.

    @param url: The URL to GET
    @type url: C{str}
    @param descriptor: The endpoint descriptor to use
    @type descriptor: C{str}
    @return: A deferred; upon 200 success the body of the response is returned,
        otherwise a twisted.web.error.Error is the result.
    """
    point = endpoints.clientFromString(reactor, descriptor)
    factory = HTTPClientFactory(url, timeout=10)
    point.connect(factory)
    return factory.deferred 
開發者ID:apple,項目名稱:ccs-calendarserver,代碼行數:18,代碼來源:wiki.py

示例4: makeRequest

# 需要導入模塊: from twisted.web import client [as 別名]
# 或者: from twisted.web.client import HTTPClientFactory [as 別名]
def makeRequest(self, path, method, headers, body):
        scheme = "https:" if self.useSSL else "http:"
        url = "%s//%s:%d%s" % (scheme, self.host, self.port, path)
        caldavFactory = client.HTTPClientFactory(
            url, method=method,
            headers=headers, postdata=body, agent="Push Monitor")
        caldavFactory.username = self.authname
        caldavFactory.password = self.password
        caldavFactory.noisy = False
        caldavFactory.protocol = PropfindRequestor
        if self.useSSL:
            connect(GAIEndpoint(reactor, self.host, self.port, simpleClientContextFactory(self.host)),
                    caldavFactory)
        else:
            connect(GAIEndpoint(reactor, self.host, self.port), caldavFactory)

        return caldavFactory.deferred 
開發者ID:apple,項目名稱:ccs-calendarserver,代碼行數:19,代碼來源:notifications.py

示例5: test_infiniteRedirection

# 需要導入模塊: from twisted.web import client [as 別名]
# 或者: from twisted.web.client import HTTPClientFactory [as 別名]
def test_infiniteRedirection(self):
        """
        When more than C{redirectLimit} HTTP redirects are encountered, the
        page request fails with L{InfiniteRedirection}.
        """
        def checkRedirectCount(*a):
            self.assertEquals(f._redirectCount, 13)
            self.assertEquals(self.infiniteRedirectResource.count, 13)

        f = client._makeGetterFactory(
            self.getURL('infiniteRedirect'),
            client.HTTPClientFactory,
            redirectLimit=13)
        d = self.assertFailure(f.deferred, error.InfiniteRedirection)
        d.addCallback(checkRedirectCount)
        return d 
開發者ID:kuri65536,項目名稱:python-for-android,代碼行數:18,代碼來源:test_webclient.py

示例6: test_afterFoundGet

# 需要導入模塊: from twisted.web import client [as 別名]
# 或者: from twisted.web.client import HTTPClientFactory [as 別名]
def test_afterFoundGet(self):
        """
        Enabling unsafe redirection behaviour overwrites the method of
        redirected C{POST} requests with C{GET}.
        """
        url = self.getURL('extendedRedirect?code=302')
        f = client.HTTPClientFactory(url, followRedirect=True, method="POST")
        self.assertFalse(
            f.afterFoundGet,
            "By default, afterFoundGet must be disabled")

        def gotPage(page):
            self.assertEquals(
                self.extendedRedirect.lastMethod,
                "GET",
                "With afterFoundGet, the HTTP method must change to GET")

        d = client.getPage(
            url, followRedirect=True, afterFoundGet=True, method="POST")
        d.addCallback(gotPage)
        return d 
開發者ID:kuri65536,項目名稱:python-for-android,代碼行數:23,代碼來源:test_webclient.py

示例7: test_protectedServerAndDate

# 需要導入模塊: from twisted.web import client [as 別名]
# 或者: from twisted.web.client import HTTPClientFactory [as 別名]
def test_protectedServerAndDate(self):
        """
        If the CGI script emits a I{Server} or I{Date} header, these are
        ignored.
        """
        cgiFilename = self.writeCGI(SPECIAL_HEADER_CGI)

        portnum = self.startServer(cgiFilename)
        url = "http://localhost:%d/cgi" % (portnum,)
        factory = client.HTTPClientFactory(url)
        reactor.connectTCP('localhost', portnum, factory)
        def checkResponse(ignored):
            self.assertNotIn('monkeys', factory.response_headers['server'])
            self.assertNotIn('last year', factory.response_headers['date'])
        factory.deferred.addCallback(checkResponse)
        return factory.deferred 
開發者ID:kuri65536,項目名稱:python-for-android,代碼行數:18,代碼來源:test_cgi.py

示例8: test_duplicateHeaderCGI

# 需要導入模塊: from twisted.web import client [as 別名]
# 或者: from twisted.web.client import HTTPClientFactory [as 別名]
def test_duplicateHeaderCGI(self):
        """
        If a CGI script emits two instances of the same header, both are sent in
        the response.
        """
        cgiFilename = self.writeCGI(DUAL_HEADER_CGI)

        portnum = self.startServer(cgiFilename)
        url = "http://localhost:%d/cgi" % (portnum,)
        factory = client.HTTPClientFactory(url)
        reactor.connectTCP('localhost', portnum, factory)
        def checkResponse(ignored):
            self.assertEquals(
                factory.response_headers['header'], ['spam', 'eggs'])
        factory.deferred.addCallback(checkResponse)
        return factory.deferred 
開發者ID:kuri65536,項目名稱:python-for-android,代碼行數:18,代碼來源:test_cgi.py

示例9: test_earlyHeaders

# 需要導入模塊: from twisted.web import client [as 別名]
# 或者: from twisted.web.client import HTTPClientFactory [as 別名]
def test_earlyHeaders(self):
        """
        When a connection is made, L{HTTPPagerGetter} sends the headers from
        its factory's C{headers} dict.  If I{Host} or I{Content-Length} is
        present in this dict, the values are not sent, since they are sent with
        special values before the C{headers} dict is processed.  If
        I{User-Agent} is present in the dict, it overrides the value of the
        C{agent} attribute of the factory.  If I{Cookie} is present in the
        dict, its value is added to the values from the factory's C{cookies}
        attribute.
        """
        factory = client.HTTPClientFactory(
            b'http://foo/bar',
            agent=b"foobar",
            cookies={b'baz': b'quux'},
            postdata=b"some data",
            headers={
                b'Host': b'example.net',
                b'User-Agent': b'fooble',
                b'Cookie': b'blah blah',
                b'Content-Length': b'12981',
                b'Useful': b'value'})
        transport = StringTransport()
        protocol = client.HTTPPageGetter()
        protocol.factory = factory
        protocol.makeConnection(transport)
        result = transport.value()
        for expectedHeader in [
            b"Host: example.net\r\n",
            b"User-Agent: foobar\r\n",
            b"Content-Length: 9\r\n",
            b"Useful: value\r\n",
            b"connection: close\r\n",
            b"Cookie: blah blah; baz=quux\r\n"]:
            self.assertIn(expectedHeader, result) 
開發者ID:proxysh,項目名稱:Safejumper-for-Desktop,代碼行數:37,代碼來源:test_webclient.py

示例10: testFactoryInfo

# 需要導入模塊: from twisted.web import client [as 別名]
# 或者: from twisted.web.client import HTTPClientFactory [as 別名]
def testFactoryInfo(self):
        url = self.getURL('file')
        uri = client.URI.fromBytes(url)
        factory = client.HTTPClientFactory(url)
        reactor.connectTCP(nativeString(uri.host), uri.port, factory)
        return factory.deferred.addCallback(self._cbFactoryInfo, factory) 
開發者ID:proxysh,項目名稱:Safejumper-for-Desktop,代碼行數:8,代碼來源:test_webclient.py

示例11: test_setURL

# 需要導入模塊: from twisted.web import client [as 別名]
# 或者: from twisted.web.client import HTTPClientFactory [as 別名]
def test_setURL(self):
        """
        L{client.HTTPClientFactory.setURL} alters the scheme, host, port and
        path for absolute URLs.
        """
        url = b'http://example.com'
        f = client.HTTPClientFactory(url)
        self.assertEqual(
            (url, b'http', b'example.com', 80, b'/'),
            (f.url, f.scheme, f.host, f.port, f.path)) 
開發者ID:proxysh,項目名稱:Safejumper-for-Desktop,代碼行數:12,代碼來源:test_webclient.py

示例12: test_setURLRelativePath

# 需要導入模塊: from twisted.web import client [as 別名]
# 或者: from twisted.web.client import HTTPClientFactory [as 別名]
def test_setURLRelativePath(self):
        """
        L{client.HTTPClientFactory.setURL} alters the path in a relative URL.
        """
        f = client.HTTPClientFactory(b'http://example.com')
        url = b'/hello'
        f.setURL(url)
        self.assertEqual(
            (url, b'http', b'example.com', 80, b'/hello'),
            (f.url, f.scheme, f.host, f.port, f.path)) 
開發者ID:proxysh,項目名稱:Safejumper-for-Desktop,代碼行數:12,代碼來源:test_webclient.py

示例13: testCookieHeaderParsing

# 需要導入模塊: from twisted.web import client [as 別名]
# 或者: from twisted.web.client import HTTPClientFactory [as 別名]
def testCookieHeaderParsing(self):
        factory = client.HTTPClientFactory(b'http://foo.example.com/')
        proto = factory.buildProtocol('127.42.42.42')
        transport = StringTransport()
        proto.makeConnection(transport)
        for line in [
            b'200 Ok',
            b'Squash: yes',
            b'Hands: stolen',
            b'Set-Cookie: CUSTOMER=WILE_E_COYOTE; path=/; expires=Wednesday, 09-Nov-99 23:12:40 GMT',
            b'Set-Cookie: PART_NUMBER=ROCKET_LAUNCHER_0001; path=/',
            b'Set-Cookie: SHIPPING=FEDEX; path=/foo',
            b'',
            b'body',
            b'more body',
            ]:
            proto.dataReceived(line + b'\r\n')
        self.assertEqual(transport.value(),
                         b'GET / HTTP/1.0\r\n'
                         b'Host: foo.example.com\r\n'
                         b'User-Agent: Twisted PageGetter\r\n'
                         b'\r\n')
        self.assertEqual(factory.cookies,
                          {
            b'CUSTOMER': b'WILE_E_COYOTE',
            b'PART_NUMBER': b'ROCKET_LAUNCHER_0001',
            b'SHIPPING': b'FEDEX',
            }) 
開發者ID:proxysh,項目名稱:Safejumper-for-Desktop,代碼行數:30,代碼來源:test_webclient.py

示例14: test_HTTPDefaultPort

# 需要導入模塊: from twisted.web import client [as 別名]
# 或者: from twisted.web.client import HTTPClientFactory [as 別名]
def test_HTTPDefaultPort(self):
        """
        No port should be included in the host header when connecting to the
        default HTTP port.
        """
        factory = client.HTTPClientFactory(b'http://foo.example.com/')
        proto = factory.buildProtocol(b'127.42.42.42')
        proto.makeConnection(StringTransport())
        self.assertEqual(self._getHost(proto.transport.value()),
                          b'foo.example.com') 
開發者ID:proxysh,項目名稱:Safejumper-for-Desktop,代碼行數:12,代碼來源:test_webclient.py

示例15: test_HTTPPort80

# 需要導入模塊: from twisted.web import client [as 別名]
# 或者: from twisted.web.client import HTTPClientFactory [as 別名]
def test_HTTPPort80(self):
        """
        No port should be included in the host header when connecting to the
        default HTTP port even if it is in the URL.
        """
        factory = client.HTTPClientFactory(b'http://foo.example.com:80/')
        proto = factory.buildProtocol('127.42.42.42')
        proto.makeConnection(StringTransport())
        self.assertEqual(self._getHost(proto.transport.value()),
                          b'foo.example.com') 
開發者ID:proxysh,項目名稱:Safejumper-for-Desktop,代碼行數:12,代碼來源:test_webclient.py


注:本文中的twisted.web.client.HTTPClientFactory方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。