出于某种原因,我在尝试创建 Salesforce 的简单登录请求时收到此错误。
这与 postman 中的工作方式完全一样,但是,当我尝试转换为 Google Apps 脚本时,它似乎会产生“文件过早结束”错误。
var myHeaders = {
"Content-Type": 'text/xml',
SOAPAction: '/',
Cookie: "BrowserId=sB-PspOVEeqEttdm-K56tw",
}
/*myHeaders.append("Content-Type", "text/xml");
myHeaders.append("SOAPAction", "\"\"");
myHeaders.append("Cookie", "BrowserId=sB-PspOVEeqEttdm-K56tw");*/
var raw = "<Envelope xmlns=\"http://schemas.xmlsoap.org/soap/envelope/\">\n <Header>\n </Header>\n <Body>\n <login xmlns=\"urn:enterprise.soap.sforce.com\">\n <username><a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="5129291129297f323e3c" rel="noreferrer noopener nofollow">[email protected]</a></username>\n <password>xx</password>\n </login>\n </Body>\n</Envelope>";
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow',
muteHttpExceptions : true
};
var response = UrlFetchApp.fetch("https://test.salesforce.com/services/Soap/c/48.0/", requestOptions)
//.then(response => response.text())
//.then(result => logger.log(result))
//.catch(error => logger.log('error', error));
Logger.log(response.getContentText())```
最佳答案
这个修改怎么样?
修改点:
- 我认为在这种情况下,可能不需要
Cookie: "BrowserId=sB-PspOVEeqEttdm-K56tw"
。 body
和redirect
的属性不包含在UrlFetchApp.fetch
的参数中。
修改后的脚本:
var myHeaders = {
SOAPAction: '/',
}
var raw = "<Envelope xmlns=\"http://schemas.xmlsoap.org/soap/envelope/\">\n <Header>\n </Header>\n <Body>\n <login xmlns=\"urn:enterprise.soap.sforce.com\">\n <username><a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="91e9e9d1e9e9bff2fefc" rel="noreferrer noopener nofollow">[email protected]</a></username>\n <password>xx</password>\n </login>\n </Body>\n</Envelope>";
var requestOptions = {
method: 'POST',
headers: myHeaders,
contentType: "text/xml",
payload: raw,
muteHttpExceptions : true
};
var response = UrlFetchApp.fetch("https://test.salesforce.com/services/Soap/c/48.0/", requestOptions);
Logger.log(response.getContentText())
注意:
- 在此修改中,假设
SOAPAction
、raw
和https://test.salesforce.com/services/Soap/c/的值48.0/
是正确的。
引用:
关于javascript - XML 请求中的文件提前结束错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61895331/