Package com.helger.phase4.messaging.http
Class BasicHttpPoster
java.lang.Object
com.helger.phase4.messaging.http.BasicHttpPoster
- All Implemented Interfaces:
IHttpPoster
A generic HTTP POST wrapper based on
IHttpClientProvider and
HttpPost. Since 0.13.0 this is a standalone class which is injected
as a member into the respective AS4 clients.- Author:
- Philip Helger
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic com.helger.httpclient.HttpClientFactoryprotected static org.apache.hc.core5.http.HttpEntitycreateDumpingHttpEntity(IAS4OutgoingDumper aOutgoingDumper, org.apache.hc.core5.http.HttpEntity aSrcEntity, String sMessageID, com.helger.commons.http.HttpHeaderMap aCustomHttpHeaders, int nTry, com.helger.commons.wrapper.Wrapper<OutputStream> aDumpOSHolder) final com.helger.httpclient.HttpClientFactoryfinal Consumer<? super org.apache.hc.client5.http.classic.methods.HttpPost> final boolean<T> TsendGenericMessage(String sURL, com.helger.commons.http.HttpHeaderMap aCustomHttpHeaders, org.apache.hc.core5.http.HttpEntity aHttpEntity, org.apache.hc.core5.http.io.HttpClientResponseHandler<? extends T> aResponseHandler) Send an arbitrary HTTP POST message to the provided URL, using the contained HttpClientFactory as well as the customizer.<T> TsendGenericMessageWithRetries(String sURL, com.helger.commons.http.HttpHeaderMap aCustomHttpHeaders, org.apache.hc.core5.http.HttpEntity aHttpEntity, String sMessageID, HttpRetrySettings aRetrySettings, org.apache.hc.core5.http.io.HttpClientResponseHandler<? extends T> aResponseHandler, IAS4OutgoingDumper aOutgoingDumper, IAS4RetryCallback aRetryCallback) Send an arbitrary HTTP POST message to the provided URL, using the contained HttpClientFactory as well as the customizer.final BasicHttpPostersetHttpClientFactory(com.helger.httpclient.HttpClientFactory aHttpClientFactory) Set the HTTP client provider to be used.final BasicHttpPostersetHttpCustomizer(Consumer<? super org.apache.hc.client5.http.classic.methods.HttpPost> aHttpCustomizer) Set the HTTP Post Customizer to be used.final BasicHttpPostersetQuoteHttpHeaders(boolean bQuoteHttpHeaders) Enable or disable, if HTTP header values should be quoted or not.toString()
-
Field Details
-
DEFAULT_QUOTE_HTTP_HEADERS
public static final boolean DEFAULT_QUOTE_HTTP_HEADERS- See Also:
-
-
Constructor Details
-
BasicHttpPoster
public BasicHttpPoster()
-
-
Method Details
-
createDefaultHttpClientFactory
- Returns:
- The default
HttpClientFactoryto be used. Nevernull. - Since:
- 0.8.3
-
getHttpClientFactory
- Specified by:
getHttpClientFactoryin interfaceIHttpPoster- Returns:
- The internal http client factory used for http sending. May not be
null.
-
setHttpClientFactory
@Nonnull public final BasicHttpPoster setHttpClientFactory(@Nonnull com.helger.httpclient.HttpClientFactory aHttpClientFactory) Description copied from interface:IHttpPosterSet the HTTP client provider to be used. This is e.g. necessary when a custom SSL context or a proxy server is to be used. SeecreateDefaultHttpClientFactory()as the default implementation ofIHttpClientProvider. This factory is used for http sending.- Specified by:
setHttpClientFactoryin interfaceIHttpPoster- Parameters:
aHttpClientFactory- The HTTP client factory to be used. May not benull.- Returns:
- this for chaining
-
getHttpCustomizer
@Nullable public final Consumer<? super org.apache.hc.client5.http.classic.methods.HttpPost> getHttpCustomizer()- Specified by:
getHttpCustomizerin interfaceIHttpPoster- Returns:
- The HTTP Post customizer to be used. May be
null.
-
setHttpCustomizer
@Nonnull public final BasicHttpPoster setHttpCustomizer(@Nullable Consumer<? super org.apache.hc.client5.http.classic.methods.HttpPost> aHttpCustomizer) Description copied from interface:IHttpPosterSet the HTTP Post Customizer to be used.- Specified by:
setHttpCustomizerin interfaceIHttpPoster- Parameters:
aHttpCustomizer- The new customizer. May benull.- Returns:
- this for chaining
-
isQuoteHttpHeaders
public final boolean isQuoteHttpHeaders()- Specified by:
isQuoteHttpHeadersin interfaceIHttpPoster- Returns:
trueif HTTP header values should be quoted if they contain forbidden characters,falseif not.
-
setQuoteHttpHeaders
Description copied from interface:IHttpPosterEnable or disable, if HTTP header values should be quoted or not. For compatibility it is recommended, to not quote the values.- Specified by:
setQuoteHttpHeadersin interfaceIHttpPoster- Parameters:
bQuoteHttpHeaders-trueto quote them,falseto not quote them.- Returns:
- this for chaining
-
sendGenericMessage
@Nullable public <T> T sendGenericMessage(@Nonnull @Nonempty String sURL, @Nullable com.helger.commons.http.HttpHeaderMap aCustomHttpHeaders, @Nonnull org.apache.hc.core5.http.HttpEntity aHttpEntity, @Nonnull org.apache.hc.core5.http.io.HttpClientResponseHandler<? extends T> aResponseHandler) throws IOException Send an arbitrary HTTP POST message to the provided URL, using the contained HttpClientFactory as well as the customizer. Additionally the AS4 HTTP debugging is invoked in here.
This method does NOT retry- Specified by:
sendGenericMessagein interfaceIHttpPoster- Type Parameters:
T- Response data type- Parameters:
sURL- The URL to send to. May neither benullnor empty.aCustomHttpHeaders- An optional http header map that should be applied. May benull.aHttpEntity- The HTTP entity to be send. May not benull.aResponseHandler- The Http response handler that should be used to convert the HTTP response to a domain object.- Returns:
- The HTTP response. May be
null. - Throws:
IOException- In case of IO error
-
createDumpingHttpEntity
@Nonnull protected static org.apache.hc.core5.http.HttpEntity createDumpingHttpEntity(@Nullable IAS4OutgoingDumper aOutgoingDumper, @Nonnull org.apache.hc.core5.http.HttpEntity aSrcEntity, @Nonnull @Nonempty String sMessageID, @Nullable com.helger.commons.http.HttpHeaderMap aCustomHttpHeaders, @Nonnegative int nTry, @Nonnull com.helger.commons.wrapper.Wrapper<OutputStream> aDumpOSHolder) throws IOException - Throws:
IOException
-
sendGenericMessageWithRetries
@Nullable public <T> T sendGenericMessageWithRetries(@Nonnull String sURL, @Nullable com.helger.commons.http.HttpHeaderMap aCustomHttpHeaders, @Nonnull org.apache.hc.core5.http.HttpEntity aHttpEntity, @Nonnull String sMessageID, @Nonnull HttpRetrySettings aRetrySettings, @Nonnull org.apache.hc.core5.http.io.HttpClientResponseHandler<? extends T> aResponseHandler, @Nullable IAS4OutgoingDumper aOutgoingDumper, @Nullable IAS4RetryCallback aRetryCallback) throws IOException Description copied from interface:IHttpPosterSend an arbitrary HTTP POST message to the provided URL, using the contained HttpClientFactory as well as the customizer. Additionally the AS4 HTTP debugging is invoked in here.- Specified by:
sendGenericMessageWithRetriesin interfaceIHttpPoster- Type Parameters:
T- Response data type- Parameters:
sURL- The URL to send to. May neither benullnor empty.aCustomHttpHeaders- An optional http header map that should be applied. May benull.aHttpEntity- The HTTP entity to be send. May not benull.sMessageID- the AS4 message ID. May not benull.aRetrySettings- The retry settings to use. May not benull.aResponseHandler- The HTTP response handler that should be used to convert the HTTP response to a domain object.aOutgoingDumper- An optional outgoing dumper for this message. May benullto use the global one.aRetryCallback- An optional retry callback that is invoked, before a retry happens.- Returns:
- The HTTP response data as indicated by the ResponseHandler. Should
not be
nullbut basically depends on the response handler. - Throws:
IOException- In case of IO error
-
toString
-