Class RequestProtocolCompliance


  • @Contract(threading=IMMUTABLE)
    class RequestProtocolCompliance
    extends java.lang.Object
    Since:
    4.1
    • Field Detail

      • weakETagOnPutDeleteAllowed

        private final boolean weakETagOnPutDeleteAllowed
      • disallowedWithNoCache

        private static final java.util.List<java.lang.String> disallowedWithNoCache
    • Constructor Detail

      • RequestProtocolCompliance

        public RequestProtocolCompliance()
      • RequestProtocolCompliance

        public RequestProtocolCompliance​(boolean weakETagOnPutDeleteAllowed)
    • Method Detail

      • requestIsFatallyNonCompliant

        public java.util.List<RequestProtocolError> requestIsFatallyNonCompliant​(org.apache.http.HttpRequest request)
        Test to see if the HttpRequest is HTTP1.1 compliant or not and if not, we can not continue.
        Parameters:
        request - the HttpRequest Object
        Returns:
        list of RequestProtocolError
      • makeRequestCompliant

        public void makeRequestCompliant​(HttpRequestWrapper request)
                                  throws ClientProtocolException
        If the HttpRequest is non-compliant but 'fixable' we go ahead and fix the request here.
        Parameters:
        request - the request to check for compliance
        Throws:
        ClientProtocolException - when we have trouble making the request compliant
      • stripOtherFreshnessDirectivesWithNoCache

        private void stripOtherFreshnessDirectivesWithNoCache​(org.apache.http.HttpRequest request)
      • buildHeaderFromElements

        private java.lang.String buildHeaderFromElements​(java.util.List<org.apache.http.HeaderElement> outElts)
      • requestMustNotHaveEntity

        private boolean requestMustNotHaveEntity​(org.apache.http.HttpRequest request)
      • decrementOPTIONSMaxForwardsIfGreaterThen0

        private void decrementOPTIONSMaxForwardsIfGreaterThen0​(org.apache.http.HttpRequest request)
      • verifyOPTIONSRequestWithBodyHasContentType

        private void verifyOPTIONSRequestWithBodyHasContentType​(org.apache.http.HttpRequest request)
      • addContentTypeHeaderIfMissing

        private void addContentTypeHeaderIfMissing​(org.apache.http.HttpEntityEnclosingRequest request)
      • verifyRequestWithExpectContinueFlagHas100continueHeader

        private void verifyRequestWithExpectContinueFlagHas100continueHeader​(org.apache.http.HttpRequest request)
      • remove100ContinueHeaderIfExists

        private void remove100ContinueHeaderIfExists​(org.apache.http.HttpRequest request)
      • add100ContinueHeaderIfMissing

        private void add100ContinueHeaderIfMissing​(org.apache.http.HttpRequest request)
      • requestMinorVersionIsTooHighMajorVersionsMatch

        protected boolean requestMinorVersionIsTooHighMajorVersionsMatch​(org.apache.http.HttpRequest request)
      • requestVersionIsTooLow

        protected boolean requestVersionIsTooLow​(org.apache.http.HttpRequest request)
      • getErrorForRequest

        public org.apache.http.HttpResponse getErrorForRequest​(RequestProtocolError errorCheck)
        Extract error information about the HttpRequest telling the 'caller' that a problem occured.
        Parameters:
        errorCheck - What type of error should I get
        Returns:
        The HttpResponse that is the error generated
      • requestHasWeakETagAndRange

        private RequestProtocolError requestHasWeakETagAndRange​(org.apache.http.HttpRequest request)
      • requestHasWeekETagForPUTOrDELETEIfMatch

        private RequestProtocolError requestHasWeekETagForPUTOrDELETEIfMatch​(org.apache.http.HttpRequest request)
      • requestContainsNoCacheDirectiveWithFieldName

        private RequestProtocolError requestContainsNoCacheDirectiveWithFieldName​(org.apache.http.HttpRequest request)