我想更新已上传的Google Doc文件的内容。 我正在使用以下代码:
DocumentsService service = new DocumentsService("app-v1");
string auth = gLogin2();
service.SetAuthenticationToken(auth);
Stream stream = new MemoryStream(ASCIIEncoding.Default.GetBytes(
"CONTENTS PLEASE CHANGE"));
DocumentEntry entry = service.Update(new Uri("feedURL"), stream, "text/plain",
"nameOfDoc") as DocumentEntry;
对于“feedURL”,我尝试使用所有可能的链接:备用,自我,编辑,编辑媒体甚至可恢复编辑媒体,但我继续获得例外。
此外,我如何阅读此类请求的回复?
我刚开始使用此API。早些时候,我在协议级别上使用它,因此发送GET / POST请求并接收Web响应。在这种情况下,我不知道如何获取或阅读回复。
更新:
现在我正在使用的代码是:
RequestSettings _settings;
string DocumentContentType = "text/html";
_settings = new RequestSettings("Stickies", "EMAIL", "PASSWORD");
var request = new DocumentsRequest(_settings);
//var entryToUpdate = doc.DocumentEntry;
var updatedContent = "new content..."; ;
var mediaUri = new Uri(string.Format(DocumentsListQuery.mediaUriTemplate, rid));
Trace.WriteLine(mediaUri);
var textStream = new MemoryStream(Encoding.UTF8.GetBytes(updatedContent));
var reqFactory = (GDataRequestFactory)request.Service.RequestFactory;
reqFactory.CustomHeaders.Add(string.Format("{0}: {1}", GDataRequestFactory.IfMatch, et));
var oldEtag = et;
DocumentEntry entry = request.Service.Update(mediaUri, textStream, DocumentContentType, title) as DocumentEntry;
Debug.WriteLine(string.Format("ETag changed while saving {0}: {1} -> {2}", title, oldEtag,et));
Trace.WriteLine("reached");
我得到的例外是:
{“远程服务器返回错误:(412)Precondition Failed。”}
我在DocumentEntry entry = request.Service.Update(mediaUri, textStream, DocumentContentType, title) as DocumentEntry;
答案 0 :(得分:0)
解决..异常前提条件失败是由于Etag不匹配 上面的UPDATED代码非常适合保存文档。