Ich möchte den Inhalt der bereits hochgeladenen Google Doc-Datei aktualisieren. Ich verwende den folgenden Code:Aktualisieren eines Dokuments in Google Docs mithilfe der API?
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;
Für „feedURL“ Ich habe versucht, alle möglichen Verbindungen mit: alternativen, selbst, zu bearbeiten, zu bearbeiten-Medien sogar fortsetzbar-edit-Medien, aber ich erhalte immer Ausnahmen .
Auch wie lese ich eine Antwort mit solchen Anfragen?
Ich habe gerade angefangen, diese API zu verwenden. Früher habe ich es auf der Protokollebene verwendet, also GET/POST-Anfragen gesendet und Webantworten erhalten. Ich weiß nicht, wie man in diesem Fall Antworten bekommt oder liest.
UPDATE:
Jetzt ist der Code Ich verwende ist:
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");
Und die Ausnahme, die ich habe, ist immer: { "Der Remoteserver hat einen Fehler zurückgegeben: (412) Vorbedingung nicht erfüllt ".} ich erhalte diese Ausnahme bei DocumentEntry entry = request.Service.Update(mediaUri, textStream, DocumentContentType, title) as DocumentEntry;
Bitte fügen Sie Ihre Ausnahmen hinzu. –
@AliAfshar Ich denke, auch der obige Code ist nicht korrekt. Ich denke, ich muss dafür eine Dokumentanfrage erstellen. –