+ def submitRequest(self, request, closeAfter=True):
+ """
+ @param request: The request to send to a remote server.
+ @type request: L{ClientRequest}
+
+ @param closeAfter: If True the 'Connection: close' header will be sent,
+ otherwise 'Connection: keep-alive'
+ @type closeAfter: C{bool}
+
+ @rtype: L{twisted.internet.defer.Deferred}
+ @return: A Deferred which will be called back with the
+ L{twisted.web2.http.Response} from the server.
+ """
+
+ # Assert we're in a valid state to submit more
+ assert self.outRequest is None
+ assert ((self.readPersistent is PERSIST_NO_PIPELINE
+ and not self.inRequests)
+ or self.readPersistent is PERSIST_PIPELINE)
+
+ self.manager.clientBusy(self)
+ if closeAfter:
+ self.readPersistent = False
+
+ self.outRequest = chanRequest = FixedHTTPClientChannelRequest(self,
+ request, closeAfter)
+ self.inRequests.append(chanRequest)
+
+ chanRequest.submit()
+ return chanRequest.responseDefer
+