【发布时间】:2012-03-21 03:02:09
【问题描述】:
我正在尝试使用 Node 和 Google Docs REST API 上传文件。如果我不包含元数据,我可以很好地上传文件,但它总是会以“无标题”的形式上传。
但是当我包含元数据时,我在发送我的原子数据并尝试继续上传文件后收到以下错误:
ParseException - prolog 中不允许有内容
这是我创建上传会话并获取可恢复媒体链接的第一个请求
var meta = '<?xml version="1.0" encoding="UTF-8"?>'
meta+= '<entry xmlns="http://www.w3.org/2005/Atom" xmlns:docs="http://schemas.google.com/docs/2007">'
meta+= '<category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/docs/2007#document"/>'
meta+= '<title>Test</title></entry>'
var options = {
host: 'docs.google.com',
path: '/feeds/upload/create-session/default/private/full',
method: 'POST',
headers: {
'Host' : 'docs.google.com',
'Content-Length' : meta.length,
'Content-Type': 'application/atom+xml',
'GData-Version' : 3,
'Authorization' : 'GoogleLogin auth=' + authToken,
'X-Upload-Content-Type' : 'application/msword',
'X-Upload-Content-Length' : 31232
}
}
var req = https.request(options, function (res) {
// make 2nd request
});
req.end(meta);
这是我获得可恢复媒体链接后的第二个请求的样子
var options = {
host: 'docs.google.com',
path: resumableMediaLink,
method: 'PUT',
headers: {
'Content-Length': data.length,
'Content-Type': 'application/msword',
'Content-Range': 'bytes 0-' + (data.length-1) +'/'+ data.length
}
}
var req = https.request(options, function (res) {
res.on('data', function (chunk) {
// ...
});
});
req.write(data);
req.end();
似乎我错误地发送了原子数据。关于我可能做错了什么的任何想法?
【问题讨论】:
标签: rest node.js google-docs google-docs-api