Package org.hl7.fhir.r5.utils.client
Class ClientUtils
- java.lang.Object
-
- org.hl7.fhir.r5.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 String
DEFAULT_CHARSET
static String
HEADER_LOCATION
-
Constructor Summary
Constructors Constructor Description ClientUtils()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description HttpURLConnection
buildConnection(URI baseServiceUri, String tail)
Client connection methodsHttpURLConnection
buildConnection(URI baseServiceUri, ResourceType resourceType, String id)
protected void
configureFhirRequest(org.apache.http.HttpRequest request, String format)
Method adds required request headers.protected void
configureFhirRequest(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)
Calendar
getLastModifiedResponseHeaderAsCalendarObject(URLConnection serverConnection)
protected String
getLocationHeader(org.apache.http.HttpResponse response)
ToolingClientLogger
getLogger()
protected IParser
getParser(String format)
String
getPassword()
org.apache.http.HttpHost
getProxy()
<T extends Resource>
byte[]getResourceAsByteArray(T resource, boolean pretty, boolean isJson)
Other general helper methodsint
getTimeout()
String
getUsername()
boolean
issueDeleteRequest(URI resourceUri)
Bundle
issueGetFeedRequest(URI resourceUri, String resourceFormat)
<T extends Resource>
ResourceRequest<T>issueGetResourceRequest(URI resourceUri, String resourceFormat)
<T extends Resource>
ResourceRequest<T>issueOptionsRequest(URI optionsUri, String resourceFormat)
Bundle
issuePostFeedRequest(URI resourceUri, Map<String,String> parameters, String resourceName, Resource resource, String resourceFormat)
<T extends Resource>
ResourceRequest<T>issuePostRequest(URI resourceUri, byte[] payload, String resourceFormat)
<T extends Resource>
ResourceRequest<T>issuePostRequest(URI resourceUri, byte[] payload, String resourceFormat, List<org.apache.http.Header> headers)
<T extends Resource>
ResourceRequest<T>issuePutRequest(URI resourceUri, byte[] payload, String resourceFormat)
<T extends Resource>
ResourceRequest<T>issuePutRequest(URI resourceUri, byte[] payload, String resourceFormat, List<org.apache.http.Header> headers)
protected <T extends Resource>
ResourceRequest<T>issueResourceRequest(String resourceFormat, org.apache.http.client.methods.HttpUriRequest request)
Request/Response Helper methodsprotected <T extends Resource>
ResourceRequest<T>issueResourceRequest(String resourceFormat, org.apache.http.client.methods.HttpUriRequest request, byte[] payload)
protected <T extends Resource>
ResourceRequest<T>issueResourceRequest(String resourceFormat, org.apache.http.client.methods.HttpUriRequest request, byte[] payload, List<org.apache.http.Header> headers)
Bundle
postBatchRequest(URI resourceUri, byte[] payload, String resourceFormat)
protected org.apache.http.HttpResponse
sendPayload(org.apache.http.client.methods.HttpEntityEnclosingRequestBase request, byte[] payload)
Method posts request payloadprotected org.apache.http.HttpResponse
sendPayload(org.apache.http.client.methods.HttpEntityEnclosingRequestBase request, byte[] payload, org.apache.http.HttpHost proxy)
Method posts request payloadprotected org.apache.http.HttpResponse
sendRequest(org.apache.http.client.methods.HttpUriRequest request)
void
setLogger(ToolingClientLogger logger)
void
setPassword(String password)
void
setProxy(org.apache.http.HttpHost proxy)
void
setTimeout(int timeout)
void
setUsername(String username)
protected Bundle
unmarshalFeed(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 String
writeInputStreamAsString(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
-
-
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)
-
issueGetResourceRequest
public <T extends Resource> ResourceRequest<T> issueGetResourceRequest(URI resourceUri, String resourceFormat)
-
issuePutRequest
public <T extends Resource> ResourceRequest<T> issuePutRequest(URI resourceUri, byte[] payload, String resourceFormat, List<org.apache.http.Header> headers)
-
issuePutRequest
public <T extends Resource> ResourceRequest<T> issuePutRequest(URI resourceUri, byte[] payload, String resourceFormat)
-
issuePostRequest
public <T extends Resource> ResourceRequest<T> issuePostRequest(URI resourceUri, byte[] payload, String resourceFormat, List<org.apache.http.Header> headers)
-
issuePostRequest
public <T extends Resource> ResourceRequest<T> issuePostRequest(URI resourceUri, byte[] payload, String resourceFormat)
-
issueGetFeedRequest
public Bundle issueGetFeedRequest(URI resourceUri, String resourceFormat)
-
postBatchRequest
public Bundle postBatchRequest(URI resourceUri, byte[] payload, String resourceFormat)
-
issueDeleteRequest
public boolean issueDeleteRequest(URI resourceUri)
-
issueResourceRequest
protected <T extends Resource> ResourceRequest<T> issueResourceRequest(String resourceFormat, org.apache.http.client.methods.HttpUriRequest request)
Request/Response Helper methods
-
issueResourceRequest
protected <T extends Resource> ResourceRequest<T> issueResourceRequest(String resourceFormat, org.apache.http.client.methods.HttpUriRequest request, byte[] payload)
- 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)
- 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)
Method posts request payload- Parameters:
request
-payload
-- Returns:
-
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 ToolingClientLogger getLogger()
-
setLogger
public void setLogger(ToolingClientLogger logger)
-
writeInputStreamAsString
protected String writeInputStreamAsString(InputStream instream)
Used for debugging- Parameters:
instream
-- Returns:
-
-