HTTP11ClientProtocol is an implementation of the HTTP 1.1 client protocol. It supports as few features as possible.

Method __init__ Undocumented
Method state Undocumented
Method request Issue request over self.transport and return a Deferred which will fire with a Response instance or an error.
Method dataReceived Handle some stuff from some place.
Method connectionLost The underlying transport went away. If appropriate, notify the parser object.
Method abort Close the connection and cause all outstanding request Deferreds to fire with an error.
Instance Variable _parser After a request is issued, the HTTPClientParser to which received data making up the response to that request is delivered.
Instance Variable _finishedRequest After a request is issued, the Deferred which will fire when a Response object corresponding to that request is available. This allows HTTP11ClientProtocol to fail the request if there is a connection or parsing problem.
Instance Variable _currentRequest After a request is issued, the Request instance used to make that request. This allows HTTP11ClientProtocol to stop request generation if necessary (for example, if the connection is lost).
Instance Variable _transportProxy After a request is issued, the TransportProxyProducer to which _parser is connected. This allows _parser to pause and resume the transport in a way which HTTP11ClientProtocol can exert some control over.
Instance Variable _responseDeferred After a request is issued, the Deferred from _parser which will fire with a Response when one has been received. This is eventually chained with _finishedRequest, but only in certain cases to avoid double firing that Deferred.
Instance Variable _state Indicates what state this HTTP11ClientProtocol instance is in with respect to transmission of a request and reception of a response. This may be one of the following strings:
  • QUIESCENT: This is the state HTTP11ClientProtocol instances start in. Nothing is happening: no request is being sent and no response is being received or expected.
  • TRANSMITTING: When a request is made (via request), the instance moves to this state. Request.writeTo has been used to start to send a request but it has not yet finished.
  • TRANSMITTING_AFTER_RECEIVING_RESPONSE: The server has returned a complete response but the request has not yet been fully sent yet. The instance will remain in this state until the request is fully sent.
  • GENERATION_FAILED: There was an error while the request. The request was not fully sent to the network.
  • WAITING: The request was fully sent to the network. The instance is now waiting for the response to be fully received.
  • ABORTING: Application code has requested that the HTTP connection be aborted.
  • CONNECTION_LOST: The connection has been lost.
(type: str)
Instance Variable _abortDeferreds A list of Deferred instances that will fire when the connection is lost.
Method _finishResponse Called by an HTTPClientParser to indicate that it has parsed a complete response.
Method _finishResponse_WAITING Undocumented
Method _disconnectParser If there is still a parser, call its connectionLost method with the given reason. If there is not, do nothing.
Method _giveUp Lose the underlying connection and disconnect the parser with the given Failure.
Method _connectionLost_QUIESCENT Nothing is currently happening. Move to the 'CONNECTION_LOST' state but otherwise do nothing.
Method _connectionLost_GENERATION_FAILED The connection was in an inconsistent state. Move to the 'CONNECTION_LOST' state but otherwise do nothing.
Method _connectionLost_TRANSMITTING Fail the Deferred for the current request, notify the request object that it does not need to continue transmitting itself, and move to the 'CONNECTION_LOST' state.
Method _connectionLost_TRANSMITTING_AFTER_RECEIVING_RESPONSE Move to the 'CONNECTION_LOST' state.
Method _connectionLost_WAITING No summary
Method _connectionLost_ABORTING Disconnect the response parser with a ConnectionAborted failure, and move to the 'CONNECTION_LOST' state.

Inherited from Protocol:

Method logPrefix Return a prefix matching the class name, to identify log messages related to this protocol instance.

Inherited from BaseProtocol (via Protocol):

Method makeConnection Make a connection to a transport and a server.
Method connectionMade Called when a connection is made.
_parser =
After a request is issued, the HTTPClientParser to which received data making up the response to that request is delivered.
_finishedRequest =
After a request is issued, the Deferred which will fire when a Response object corresponding to that request is available. This allows HTTP11ClientProtocol to fail the request if there is a connection or parsing problem.
_currentRequest =
After a request is issued, the Request instance used to make that request. This allows HTTP11ClientProtocol to stop request generation if necessary (for example, if the connection is lost).
_transportProxy =
After a request is issued, the TransportProxyProducer to which _parser is connected. This allows _parser to pause and resume the transport in a way which HTTP11ClientProtocol can exert some control over.
_responseDeferred =
After a request is issued, the Deferred from _parser which will fire with a Response when one has been received. This is eventually chained with _finishedRequest, but only in certain cases to avoid double firing that Deferred.
_state =
Indicates what state this HTTP11ClientProtocol instance is in with respect to transmission of a request and reception of a response. This may be one of the following strings:
  • QUIESCENT: This is the state HTTP11ClientProtocol instances start in. Nothing is happening: no request is being sent and no response is being received or expected.
  • TRANSMITTING: When a request is made (via request), the instance moves to this state. Request.writeTo has been used to start to send a request but it has not yet finished.
  • TRANSMITTING_AFTER_RECEIVING_RESPONSE: The server has returned a complete response but the request has not yet been fully sent yet. The instance will remain in this state until the request is fully sent.
  • GENERATION_FAILED: There was an error while the request. The request was not fully sent to the network.
  • WAITING: The request was fully sent to the network. The instance is now waiting for the response to be fully received.
  • ABORTING: Application code has requested that the HTTP connection be aborted.
  • CONNECTION_LOST: The connection has been lost.
(type: str)
_abortDeferreds =
A list of Deferred instances that will fire when the connection is lost.
def __init__(self, quiescentCallback=lambda c: None):
Undocumented
@property
def state(self):
Undocumented
def request(self, request):

Issue request over self.transport and return a Deferred which will fire with a Response instance or an error.

ParametersrequestThe object defining the parameters of the request to issue. (type: Request)
ReturnsThe deferred may errback with RequestGenerationFailed if the request was not fully written to the transport due to a local error. It may errback with RequestTransmissionFailed if it was not fully written to the transport due to a network error. It may errback with ResponseFailed if the request was sent (not necessarily received) but some or all of the response was lost. It may errback with RequestNotSent if it is not possible to send any more requests using this HTTP11ClientProtocol. (type: Deferred)
def _finishResponse(self, rest):

Called by an HTTPClientParser to indicate that it has parsed a complete response.

ParametersrestA bytes giving any trailing bytes which were given to the HTTPClientParser which were not part of the response it was parsing.
def _finishResponse_WAITING(self, rest):
Undocumented
def _disconnectParser(self, reason):

If there is still a parser, call its connectionLost method with the given reason. If there is not, do nothing.

def _giveUp(self, reason):

Lose the underlying connection and disconnect the parser with the given Failure.

Use this method instead of calling the transport's loseConnection method directly otherwise random things will break.

def dataReceived(self, bytes):
def connectionLost(self, reason):

The underlying transport went away. If appropriate, notify the parser object.

def _connectionLost_QUIESCENT(self, reason):

Nothing is currently happening. Move to the 'CONNECTION_LOST' state but otherwise do nothing.

def _connectionLost_GENERATION_FAILED(self, reason):

The connection was in an inconsistent state. Move to the 'CONNECTION_LOST' state but otherwise do nothing.

def _connectionLost_TRANSMITTING(self, reason):

Fail the Deferred for the current request, notify the request object that it does not need to continue transmitting itself, and move to the 'CONNECTION_LOST' state.

def _connectionLost_TRANSMITTING_AFTER_RECEIVING_RESPONSE(self, reason):

Move to the 'CONNECTION_LOST' state.

def _connectionLost_WAITING(self, reason):

Disconnect the response parser so that it can propagate the event as necessary (for example, to call an application protocol's connectionLost method, or to fail a request Deferred) and move to the 'CONNECTION_LOST' state.

def _connectionLost_ABORTING(self, reason):

Disconnect the response parser with a ConnectionAborted failure, and move to the 'CONNECTION_LOST' state.

def abort(self):

Close the connection and cause all outstanding request Deferreds to fire with an error.

API Documentation for twisted, generated by pydoctor at 2020-03-25 17:34:30.