私は周りのいくつかの質問を読みました、そして私はそれらの例を試しました、そしてそれらは私のために働きました、ここにリンクがあります:- リンク 1-リンク2-リンク3
しかし、私が少し違うことを達成しようとしているのは、プレーンテキストを含む.DATファイルを変更/アップロードしようとしていることです。問題なくファイルの内容を読み取ることができますが、常に400 Bad Request(Protocol Error)が発生します。これが私のコードです。
DocumentsService service = new DocumentsService("Man");
service.setUserCredentials(UserName, Passwod);
DocumentsListQuery fileQuery = new DocumentsListQuery();
fileQuery.Query = User.FileName;
fileQuery.TitleExact = true;
DocumentsFeed feed = service.Query(fileQuery);
//Here I get my file to update
DocumentEntry entry = (DocumentEntry)feed.Entries[0];
// Set the media source
//Here I have tried application/octet-stream also
entry.MediaSource = new MediaFileSource(DataStream, User.FileName, text/plain");
// Instantiate the ResumableUploader component.
ResumableUploader uploader = new ResumableUploader();
// Set the handlers for the completion and progress events
uploader.AsyncOperationCompleted += new AsyncOperationCompletedEventHandler(OnDone);
uploader.AsyncOperationProgress += new syncOperationProgressEventHandler(OnProgress);
ClientLoginAuthenticator authenticator = new ClientLoginAuthenticator("Man", ServiceNames.Documents,Credentials);
Uri updateUploadUrl = new Uri(UploadUrl);
AtomLink aLink = new AtomLink(updateUploadUrl.AbsoluteUri);
aLink.Rel = ResumableUploader.CreateMediaRelation;
entry.Links.Add(aLink);
// Start the update process.
uploader.UpdateAsync(authenticator,entry,new object());
ありがとう。
編集:これは私がそれを解決した方法です。正しい方向に私を導いてくれたクラウディオに感謝します
- サンプルアプリケーションのダウンロード元:サンプルのダウンロード(.zip)
- SampleHelperプロジェクトからプロジェクトに実装します:AuthorizationMgr、INativeAuthorizationFlow、LoopbackServerAuthorizationFlow、WindowTitleNativeAuthorizationFlow
このコードで使用します:
//Call Authorization method... (omitted) File body = new File(); body.Title = title; body.Description = description; body.MimeType = mimeType; byte[] byteArray = System.IO.File.ReadAllBytes(filename); MemoryStream stream = new MemoryStream(byteArray); try { FilesResource.InsertMediaUpload request = service.Files.Insert(body, stream, mimeType); request.Upload(); File file = request.ResponseBody; // Uncomment the following line to print the File ID. // Console.WriteLine("File ID: " + file.Id); return file; } catch (Exception e) { Console.WriteLine("An error occurred: " + e.Message); return null; }