Class RequestUrlParamsEncoder<RequestT>

  • Type Parameters:
    RequestT - request message type
    All Implemented Interfaces:
    RequestParamsEncoder<RequestT>

    @InternalApi("For use by transport-specific implementations")
    public class RequestUrlParamsEncoder<RequestT>
    extends java.lang.Object
    implements RequestParamsEncoder<RequestT>
    The request params encoder, which encodes URL-encoded parameters in one URL parameters string. This class expects that name-value pairs, returned from parameters extractor are already URL-encoded and can perform optional validation of that, but does not encode the name-value pairs themselves.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String encode​(RequestT request)
      Encodes the request in a form of a URL parameters string, for example "param1=value+1&param2=value2%26".
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • RequestUrlParamsEncoder

        public RequestUrlParamsEncoder​(RequestParamsExtractor<RequestT> paramsExtractor,
                                       boolean validateExtractedParameters)
        Creates the encoder.
        Parameters:
        paramsExtractor - parameters extractor which returns already URL-encoded key-value pairs
        validateExtractedParameters - true if this class should validate that the extracted parameters are URL-encoded, false otherwise
    • Method Detail

      • encode

        public java.lang.String encode​(RequestT request)
        Encodes the request in a form of a URL parameters string, for example "param1=value+1&param2=value2%26". This method may optionally validate that the name-value paris are URL-encoded, but it will not perform the actual encoding of them (it will only concatenate the valid individual name-value pairs in a valid URL parameters string). This is so, because in most practical cases the name-value paris are already URL-encoded.
        Specified by:
        encode in interface RequestParamsEncoder<RequestT>
        Parameters:
        request - request message
        Throws:
        java.lang.IllegalArgumentException - if is not