Convert REST response to Base64
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-09-2017 11:08 PM
Hi,
I am trying to fetch JIRA attachment through JIRA rest API and JIRA rest API provide me url (/secure/attachment/{attachment-id}/{attachment-name})
of the content. Further, I am trying to get attachment itself as below.
// code
var targetInstanceURL = "https://jira.****.com/secure/attachment/261255/";
var targetUserID = "username";
var targetUserPassword = "pass";
var sa = new GlideSysAttachment();
var StringUtil = GlideStringUtil();
sendAttachments();
function sendAttachments() {
var attachmentMessage = new sn_ws.RESTMessageV2();
attachmentMessage.setHttpMethod("get");
attachmentMessage.setBasicAuth(targetUserID, targetUserPassword);
attachmentMessage.setEndpoint(targetInstanceURL);
var response = attachmentMessage.execute();
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();
gs.log(responseBody);
var base64string = GlideStringUtil.base64Encode(responseBody);
gs.log("2 " + base64string );
.
.
.
}
Response Header:
Content-Disposition: inline; filename*=UTF-8''tets.jpg;
Content-Length: 2781
Content-Type: image/jpeg
OUTPUT:
gs.log(responseBody) is something like ���� JFIF xx��C
gs.log("2 " + base64string ) is something like 77+977+977+977+9ABBKRklGAAEBAQB4AHgAAO+/ve+/vQBDAAIBAQIBAQICAgICAgICAwUDAwMDAw
Cases:
1. For text file my code is working fine and I am able to add attachment in service now table.
2. For image and pdf my code is working but saved file is showing as corrupt file.
Problem:
As per my understanding for image response conversion to base64 is not correct and GlideStringUtil.base64Encode() methode is not encoding image/pdf response to base64.
Question:
1. How to convert image/pdf response to base64 or ByteArray?
2. Any other approach to store attachment in service now from JIRA?
Thanks in advanced.
Regards,
Iqbal
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-27-2017 12:14 AM
Thanks you all for response.
I am able to save attachment through saveResponseBodyAsAttachment.
//code
var targetInstanceURL = endpoint;
var targetUserID = username;
var targetUserPassword =password;
var sa = new GlideSysAttachment();
var attachmentMessage = new sn_ws.RESTMessageV2();
attachmentMessage.setHttpMethod("get");
//Mid server if you want to run it thorugh mid server
var midServer = gs.getProperty("midServerName", "");
if(midServer){
attachmentMessage.setMIDServer(midServer);
}
//
attachmentMessage.setBasicAuth(targetUserID, targetUserPassword);
attachmentMessage.setEndpoint(targetInstanceURL);
attachmentMessage.saveResponseBodyAsAttachment("incident", incSysId,fileName,fileType);
var response = attachmentMessage.execute();
var httpStatus = response.getStatusCode();
var newAttachmentSysId = response.getResponseAttachmentSysid();
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-04-2022 05:48 AM
Hi Ankur,
We are receiving the responseBody in Binary format. We want the responseBody to be attached as a pdf file to a current record. So using below code.
var base64string = GlideStringUtil.base64Encode(responseBody);
var attCreator = new GlideRecord('ecc_queue');
attCreator.agent = "AttachmentCreator";
attCreator.topic = "AttachmentCreator";
attCreator.name = "test1.pdf" + ":" + 'pdf';
attCreator.source = tablename+":"+recordsys_id;
attCreator.payload = base64string;
attCreator.insert();
But it is attaching an empty file. when I try below code:
var value = GlideStringUtil.base64Decode(responseBody);
var attCreator = new GlideRecord('ecc_queue');
attCreator.agent = "AttachmentCreator";
attCreator.topic = "AttachmentCreator";
attCreator.name = "test1.pdf" + ":" + 'pdf';
attCreator.source = tablename+":"+recordsys_id;
attCreator.payload = base64string;
attCreator.insert();
This is returning corrupted file and unable to open it. Could you please suggest an alternative way to convert binary format response into an attachment pdf.
Thanks.