Package org.hl7.fhir.r4.utils.client
Class ClientUtils
- java.lang.Object
-
- org.hl7.fhir.r4.utils.client.ClientUtils
-
public class ClientUtils extends Object
Helper class handling lower level HTTP transport concerns. TODO Document methods.- Author:
- Claude Nanjo
-
-
Field Summary
Fields Modifier and Type Field Description static StringDEFAULT_CHARSETstatic StringHEADER_LOCATIONstatic intTIMEOUT_CONNECTstatic intTIMEOUT_SOCKET
-
Constructor Summary
Constructors Constructor Description ClientUtils()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description HttpURLConnectionbuildConnection(URI baseServiceUri, String tail)Client connection methodsHttpURLConnectionbuildConnection(URI baseServiceUri, ResourceType resourceType, String id)protected voidconfigureFhirRequest(org.apache.http.HttpRequest request, String format)Method adds required request headers.protected voidconfigureFhirRequest(org.apache.http.HttpRequest request, String format, List<org.apache.http.Header> headers)Method adds required request headers.byte[]getFeedAsByteArray(Bundle feed, boolean pretty, boolean isJson)CalendargetLastModifiedResponseHeaderAsCalendarObject(URLConnection serverConnection)protected StringgetLocationHeader(org.apache.http.HttpResponse response)org.hl7.fhir.utilities.ToolingClientLoggergetLogger()protected IParsergetParser(String format)StringgetPassword()org.apache.http.HttpHostgetProxy()<T extends Resource>
byte[]getResourceAsByteArray(T resource, boolean pretty, boolean isJson)Other general helper methodsintgetRetryCount()intgetTimeout()StringgetUsername()booleanissueDeleteRequest(URI resourceUri)BundleissueGetFeedRequest(URI resourceUri, String resourceFormat)<T extends Resource>
ResourceRequest<T>issueGetResourceRequest(URI resourceUri, String resourceFormat, String message, int timeout)<T extends Resource>
ResourceRequest<T>issueOptionsRequest(URI optionsUri, String resourceFormat, String message, int timeout)BundleissuePostFeedRequest(URI resourceUri, Map<String,String> parameters, String resourceName, Resource resource, String resourceFormat)<T extends Resource>
ResourceRequest<T>issuePostRequest(URI resourceUri, byte[] payload, String resourceFormat, String message, int timeout)<T extends Resource>
ResourceRequest<T>issuePostRequest(URI resourceUri, byte[] payload, String resourceFormat, List<org.apache.http.Header> headers, String message, int timeout)<T extends Resource>
ResourceRequest<T>issuePutRequest(URI resourceUri, byte[] payload, String resourceFormat, String message, int timeout)<T extends Resource>
ResourceRequest<T>issuePutRequest(URI resourceUri, byte[] payload, String resourceFormat, List<org.apache.http.Header> headers, String message, int timeout)protected <T extends Resource>
ResourceRequest<T>issueResourceRequest(String resourceFormat, org.apache.http.client.methods.HttpUriRequest request, byte[] payload, String message, int timeout)protected <T extends Resource>
ResourceRequest<T>issueResourceRequest(String resourceFormat, org.apache.http.client.methods.HttpUriRequest request, byte[] payload, List<org.apache.http.Header> headers, String message, int timeout)protected <T extends Resource>
ResourceRequest<T>issueResourceRequest(String resourceFormat, org.apache.http.client.methods.HttpUriRequest request, String message, int timeout)Request/Response Helper methodsvoidmakeClient(org.apache.http.HttpHost proxy)BundlepostBatchRequest(URI resourceUri, byte[] payload, String resourceFormat, String message, int timeout)protected org.apache.http.HttpResponsesendPayload(org.apache.http.client.methods.HttpEntityEnclosingRequestBase request, byte[] payload)Method posts request payloadprotected org.apache.http.HttpResponsesendPayload(org.apache.http.client.methods.HttpEntityEnclosingRequestBase request, byte[] payload, org.apache.http.HttpHost proxy, String message, int timeout)Method posts request payloadprotected org.apache.http.HttpResponsesendRequest(org.apache.http.client.methods.HttpUriRequest request)voidsetLogger(org.hl7.fhir.utilities.ToolingClientLogger logger)voidsetPassword(String password)voidsetProxy(org.apache.http.HttpHost proxy)voidsetRetryCount(int retryCount)voidsetTimeout(int timeout)voidsetUsername(String username)protected BundleunmarshalFeed(org.apache.http.HttpResponse response, String format)Unmarshals Bundle from response stream.protected <T extends Resource>
TunmarshalReference(org.apache.http.HttpResponse response, String format)Unmarshals a resource from the response stream.protected StringwriteInputStreamAsString(InputStream instream)Used for debugging
-
-
-
Field Detail
-
DEFAULT_CHARSET
public static final String DEFAULT_CHARSET
- See Also:
- Constant Field Values
-
HEADER_LOCATION
public static final String HEADER_LOCATION
- See Also:
- Constant Field Values
-
TIMEOUT_SOCKET
public static final int TIMEOUT_SOCKET
- See Also:
- Constant Field Values
-
TIMEOUT_CONNECT
public static final int TIMEOUT_CONNECT
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ClientUtils
public ClientUtils()
-
-
Method Detail
-
getProxy
public org.apache.http.HttpHost getProxy()
-
setProxy
public void setProxy(org.apache.http.HttpHost proxy)
-
getTimeout
public int getTimeout()
-
setTimeout
public void setTimeout(int timeout)
-
getUsername
public String getUsername()
-
setUsername
public void setUsername(String username)
-
getPassword
public String getPassword()
-
setPassword
public void setPassword(String password)
-
issueOptionsRequest
public <T extends Resource> ResourceRequest<T> issueOptionsRequest(URI optionsUri, String resourceFormat, String message, int timeout)
-
issueGetResourceRequest
public <T extends Resource> ResourceRequest<T> issueGetResourceRequest(URI resourceUri, String resourceFormat, String message, int timeout)
-
issuePutRequest
public <T extends Resource> ResourceRequest<T> issuePutRequest(URI resourceUri, byte[] payload, String resourceFormat, List<org.apache.http.Header> headers, String message, int timeout)
-
issuePutRequest
public <T extends Resource> ResourceRequest<T> issuePutRequest(URI resourceUri, byte[] payload, String resourceFormat, String message, int timeout)
-
issuePostRequest
public <T extends Resource> ResourceRequest<T> issuePostRequest(URI resourceUri, byte[] payload, String resourceFormat, List<org.apache.http.Header> headers, String message, int timeout)
-
issuePostRequest
public <T extends Resource> ResourceRequest<T> issuePostRequest(URI resourceUri, byte[] payload, String resourceFormat, String message, int timeout)
-
issueGetFeedRequest
public Bundle issueGetFeedRequest(URI resourceUri, String resourceFormat)
-
postBatchRequest
public Bundle postBatchRequest(URI resourceUri, byte[] payload, String resourceFormat, String message, int timeout)
-
issueDeleteRequest
public boolean issueDeleteRequest(URI resourceUri)
-
issueResourceRequest
protected <T extends Resource> ResourceRequest<T> issueResourceRequest(String resourceFormat, org.apache.http.client.methods.HttpUriRequest request, String message, int timeout)
Request/Response Helper methods
-
issueResourceRequest
protected <T extends Resource> ResourceRequest<T> issueResourceRequest(String resourceFormat, org.apache.http.client.methods.HttpUriRequest request, byte[] payload, String message, int timeout)
- Parameters:
resourceFormat-options-- Returns:
-
issueResourceRequest
protected <T extends Resource> ResourceRequest<T> issueResourceRequest(String resourceFormat, org.apache.http.client.methods.HttpUriRequest request, byte[] payload, List<org.apache.http.Header> headers, String message, int timeout)
- Parameters:
resourceFormat-options-- Returns:
-
configureFhirRequest
protected void configureFhirRequest(org.apache.http.HttpRequest request, String format)
Method adds required request headers. TODO handle JSON request as well.- Parameters:
request-
-
configureFhirRequest
protected void configureFhirRequest(org.apache.http.HttpRequest request, String format, List<org.apache.http.Header> headers)
Method adds required request headers. TODO handle JSON request as well.- Parameters:
request-
-
sendPayload
protected org.apache.http.HttpResponse sendPayload(org.apache.http.client.methods.HttpEntityEnclosingRequestBase request, byte[] payload, org.apache.http.HttpHost proxy, String message, int timeout)
Method posts request payload- Parameters:
request-payload-- Returns:
-
makeClient
public void makeClient(org.apache.http.HttpHost proxy)
-
sendRequest
protected org.apache.http.HttpResponse sendRequest(org.apache.http.client.methods.HttpUriRequest request)
- Parameters:
request-payload-- Returns:
-
unmarshalReference
protected <T extends Resource> T unmarshalReference(org.apache.http.HttpResponse response, String format)
Unmarshals a resource from the response stream.- Parameters:
response-- Returns:
-
unmarshalFeed
protected Bundle unmarshalFeed(org.apache.http.HttpResponse response, String format)
Unmarshals Bundle from response stream.- Parameters:
response-- Returns:
-
getLocationHeader
protected String getLocationHeader(org.apache.http.HttpResponse response)
-
buildConnection
public HttpURLConnection buildConnection(URI baseServiceUri, String tail)
Client connection methods
-
buildConnection
public HttpURLConnection buildConnection(URI baseServiceUri, ResourceType resourceType, String id)
-
getResourceAsByteArray
public <T extends Resource> byte[] getResourceAsByteArray(T resource, boolean pretty, boolean isJson)
Other general helper methods
-
getFeedAsByteArray
public byte[] getFeedAsByteArray(Bundle feed, boolean pretty, boolean isJson)
-
getLastModifiedResponseHeaderAsCalendarObject
public Calendar getLastModifiedResponseHeaderAsCalendarObject(URLConnection serverConnection)
-
issuePostFeedRequest
public Bundle issuePostFeedRequest(URI resourceUri, Map<String,String> parameters, String resourceName, Resource resource, String resourceFormat) throws IOException
- Throws:
IOException
-
sendPayload
protected org.apache.http.HttpResponse sendPayload(org.apache.http.client.methods.HttpEntityEnclosingRequestBase request, byte[] payload)
Method posts request payload- Parameters:
request-payload-- Returns:
-
getLogger
public org.hl7.fhir.utilities.ToolingClientLogger getLogger()
-
setLogger
public void setLogger(org.hl7.fhir.utilities.ToolingClientLogger logger)
-
writeInputStreamAsString
protected String writeInputStreamAsString(InputStream instream)
Used for debugging- Parameters:
instream-- Returns:
-
getRetryCount
public int getRetryCount()
-
setRetryCount
public void setRetryCount(int retryCount)
-
-