2012-04-14 13 views
2

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;

+0

Bitte fügen Sie Ihre Ausnahmen hinzu. –

+0

@AliAfshar Ich denke, auch der obige Code ist nicht korrekt. Ich denke, ich muss dafür eine Dokumentanfrage erstellen. –

Antwort

0

.. Ausnahme Voraussetzung Gelöst fehlgeschlagen wurde durch perfekt ETAG Mismatch Der obige Code AKTUALISIERT arbeitet ein Dokument zum Speichern .

Verwandte Themen