您能否帮忙提供一些示例 Java 代码,以使用 ServiceNow 日内瓦的 REST API 执行文件(多种内容类型,如 csv、jpg、xls、xlsx)附件?
预先感谢您的帮助。
最佳答案
我在 ContentPage 中创建了以下 html 代码,以在 ServiceNow 日内瓦版本中上传文件。我测试了它,它对于 TXT、DOCX、PDF、JPEG、GIF、图标等效果很好。这也可以在 UI 页面中使用。出于安全原因,我建议您进行一些修改。
- 从 UI 脚本/内容中删除 new XMLHttpRequest() 代码块 页面并在脚本包含中上传。
创建REST消息并从脚本包含进行调用,例如 该代码不会向最终用户公开。
文件上传测试
<script> function uploadFileTest() { var obj=document.getElementById('fileUpload'); var file=obj.files[0]; var fileName=obj.files[0].name; var encodedFile=''; //Encode file var reader = new FileReader(); reader.onload = function(readerEvt) { var binaryString = readerEvt.target.result; encodedFile= btoa(binaryString); var xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function () { if (this.readyState === 4) { console.log(this.responseText); } }); // xhr.open("POST","https://XXXXX.service-now.com/api/now/table/ecc_queue"); xhr.open("POST","https://XXXXX.service-now.com/ecc_queue.do?JSONv2"); var data='{"agent":"AttachmentCreator","topic":"AttachmentCreator","name":"'+fileName+'","source":"u_itinerary_attchements:"'+sysid+'","payload":"'+encodedFile+'"}'; xhr.setRequestHeader("authorization", "Basic anBhdmFuOmpwYXZhbg=="); xhr.setRequestHeader("Content-Type", "application/json"); xhr.setRequestHeader("Accept", "application/json"); xhr.setRequestHeader("cache-control", "no-cache"); xhr.send(data); }; reader.readAsBinaryString(file); } </script> <input type='text' id='response' /> </form> </body> </html>
关于java - Service Now 日内瓦 Rest API Java 代码 将文件附加到事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38381023/