Example of using the REST API to retrieve an attachment from a form
URL qualifier | /entry/{formName}/{entryId}/attach/{fieldName} formName is the name of the form for which an entry must be created. | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Method | GET | ||||||||||||||||||
Header |
| ||||||||||||||||||
Returns | The attachment binary data is returned as Content-Type: application/octet-stream. AR Systemdoes 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 code is returned:
For more information, see Error-handling-for-the-REST-API. |
The following example returns an entry with attachment:
Request URL
Request header
eyJleHAiOjE0MTc2NTM1ODgsInN1YiI6IkFsbGVuIiwibmJmIjoxNDE3NjQ5ODY4LCJpc3MiOi
JXLUNTRUlFUk9FLTI5LmFkcHJvZC5ibWMuY29tIiwianRpI
joiSURHQUFCRFVDMllHSUFONkJGUTJBQUFFUEZBNVFXIiwiX2NhY2hlSWQiOjQ3LCJpYXQiOjE0MTc2NDk5ODh9.
V4LGLcEdwD8V_I4rzoWYYSZmEMA82LBB_lEfz4Xnz9Y
Here 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>