是否有一种方法可以使用Google脚本URLFetchApp
提交XML有效负载?
我已经尝试将XML文档添加到有效负载中。
var url = "https://stackoverflow.com"; //not real
var xml = ///some xml
var params = {'content-type': 'application/xml',
'method': 'post',
'payload': xml};
var response = UrlFetchApp.fetch(url, params);
我期待请求被提交,但它在"fetch“中出错。
我收到的错误是:
提供无效值的属性:有效载荷(第73行,文件"Code")“。
发布于 2019-07-30 02:10:19
问题
您正在向fetch()
方法调用传递一个无效的第二个参数。
溶液
您可以在配置对象中传递一组封闭的可接受参数。请确保参数的名称与引用中的名称完全相同(见下文)。在您的示例中,content-type
应该重命名为contentType
(当前,您的请求以application/x-www-form-urlencoded
的形式发送您的XML )。
考虑使用muteHttpExceptions
设置为true
来简化将来的调试过程。
更新
经过更彻底的调查后,您所遇到的错误很可能与将解析的XML文档(例如通过XmlService
创建)传递给payload
有关(尽管前面的问题仍然存在),如果您正在这样做(在此情况下,错误将始终重复)。请注意,payload
可以接受String
、byte[]
或Blob
实例或Object
(在contentType
参数上有所不同)。
Modification
根据Tanaike的评论和建议,如果您确实试图将一个Document
实例传递给payload
,那么这个问题将通过准备XML来修正(注意,这些操作不会改变xml
值),例如:
XmlService.getPrettyFormat().format(XmlService.parse(xml))
;XmlService.getRawFormat().format(xml)
(如果XML已经被解析);有用链接
fetch()
方法参考(https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app#fetch(String,Object%29);XmlService
类参考文献;getRawFormat()
方法参考文献 (以防万一);https://stackoverflow.com/questions/57263184
复制相似问题