【发布时间】:2019-10-29 22:06:13
【问题描述】:
执行 UrlFetchApp.fetch(url) 时,我有一些 GAS 代码失败 - 我想。
在 UrlFetchApp.fetch(url) 中使用时,url 的字符长度是否有限制。我的功能失败了,我怀疑它与 url 的长度有关。超过 100 个字符。
下面的代码是指...
function uploadToDrive(url, folderid, filename, fileDesc) {
var msg = '';
try {
var response = UrlFetchApp.fetch(url);
} catch(err) {
};
if (response.getResponseCode() === 200) {
var folder = DriveApp.getRootFolder();
if (folderid) {
folder = DriveApp.getFolderById(folderid);
}
var blob = response.getBlob();
var file = folder.createFile(blob);
file.setName(filename);
file.setDescription(fileDesc);
var headers = response.getHeaders();
var content_length = NaN;
for (var key in headers) {
if (key.toLowerCase() == 'Content-Length'.toLowerCase()) {
content_length = parseInt(headers[key], 10);
break;
}
}
var blob_length = blob.getBytes().length;
msg += 'Saved "' + filename + '" (' + blob_length + ' bytes)';
if (!isNaN(content_length)) {
if (blob_length < content_length) {
msg += ' WARNING: truncated from ' + content_length + ' bytes.';
} else if (blob_length > content_length) {
msg += ' WARNING: size is greater than expected ' + content_length + ' bytes from Content-Length header.';
}
}
msg += '\nto folder "' + folder.getName() + '".\n';
}
else {
msg += 'Response code: ' + response.getResponseCode() + '\n';
}
return file.getUrl();
}
【问题讨论】:
-
这些信息对您的情况有用吗? stackoverflow.com/q/2659952/7108653 顺便问一下,为了正确理解您所说的
fails,能否提供错误信息和脚本的错误行? -
第 5 行 - var response = UrlFetchApp.fetch(url) - 返回错误代码 404。
-
我用 300+ 个字符长的 url 尝试了这个方法,它奏效了。问题可能与此特定 url 有关。你能分享一下这个网址吗?
-
这个url返回404。这个问题与GAS限制无关。