Example of using the REST API to retrieve an attachment from a form
You can use the GET operation to retrieve an attachment for a particular entry.
Clients such as curl, Postman, or BMC TestHttpClient tool can make calls to REST APIs. For information about retrieving attachments using the BMC TestHTTPClient tool, see the knowledge article on BMC Communities TestHttpClient - Command line tool to test HTTP(S) services .
Retrieve an attachment
The following table lists details about this GET operation.
URL qualifier | /entry/{formName}/{entryId}/attach/{fieldName} formName - The form for which an entry is to be created. | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Method | GET | ||||||||||||||||||
Header |
| ||||||||||||||||||
Returns | The attachment binary data is returned as Content-Type: application/octet-stream. Remedy AR System does not save the MIME types of attachment values, so the application/octet-stream is used to return arbitrary binary data. | ||||||||||||||||||
All possible error codes | If the request is not successful, one of the following error codes are returned:
For more information, see HTTP status codes. |
The following example returns an entry with attachment.
Request URL
Request header
eyJleHAiOjE0MTc2NTM1ODgsInN1YiI6IkFsbGVuIiwibmJmIjoxNDE3NjQ5ODY4LCJpc3MiOi
JXLUNTRUlFUk9FLTI5LmFkcHJvZC5ibWMuY29tIiwianRpI
joiSURHQUFCRFVDMllHSUFONkJGUTJBQUFFUEZBNVFXIiwiX2NhY2hlSWQiOjQ3LCJpYXQiOjE0MTc2NDk5ODh9.
V4LGLcEdwD8V_I4rzoWYYSZmEMA82LBB_lEfz4Xnz9Y
Following is a sample code snippet for the GET operation with attachments.
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
public class GetAttachment {
public static void main(String[] args) throws Exception {
String token = args[0];
// start HTTP GET to get the attachment
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet(
"http://localhost:8008/api/arsys/v1/entry/AttachTest/000000000000001/attach/Attachment");
// add the token to the header
httpGet.addHeader("Authorization", "AR-JWT " + token);
// make the call and write to a file
try (CloseableHttpResponse response = httpClient.execute(httpGet)) {
HttpEntity entity = response.getEntity();
InputStream input = entity.getContent();
File tempFile = File.createTempFile("screenshot", ".png");
try (BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream(
tempFile))) {
IOUtils.copy(input, output);
System.out.println("Attachment written to: " + tempFile);
}
}
}
}
Response Body
Date: Wed, 03 Dec 2014 23:01:40 GMT
Content-Type: application/octet-stream
Server: Jetty(8.1.15.v20140411)
...
<binary data>
Related topic