使用Web请求将文件插入Google云端硬盘



我正在尝试使用 webRequest 在谷歌云端硬盘中插入文件(因为我正在实现可恢复的异步上传),但我不知道如何将数据放入请求"正文"中。

从现在开始,我有:

    public static HttpWebRequest CreateUploadRequest(Google.Apis.Drive.v2.DriveService driveService, string uri, Stream contentStream, string title, string mimeType, string description = null)
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
        request.Method = "PUT";
        Dictionary<string, object> requestBody = new Dictionary<string, object>();
        requestBody["title"] = title;
        requestBody["mimeType"] = mimeType;
        if (!string.IsNullOrWhiteSpace(description))
        {
            requestBody["description"] = description;
        }
        driveService.Authenticator.ApplyAuthenticationToRequest(request);

        Stream requestStream = request.GetRequestStream();
        //How to do that???
        requestStream.Close();
        return request;
    }

我为 HttpWebRequest 设置了标头,应该如何处置正文的数据?要插入的文件的 byte[] 数据的属性名称是什么?

任何例子都值得赞赏。

此页面上的 SDK 文档说:

请求正文的格式为多部分/相关内容类型RFC2387,并且正好包含两个部分。这些部分由边界字符串标识,最终边界字符串后跟两个连字符。

如果您从未使用过它,那么 MIME 定义RFC2387。MIME 中的二进制数据通常采用 BASE64 编码,如 RFC 中的此示例所示:

 Content-Type: Application/octet-stream
 Content-Description: The fixed length records
 Content-Transfer-Encoding: base64
 Content-ID: <950120.aaCB@XIson.com>
 T2xkIE1hY0RvbmFsZCBoYWQgYSBmYXJtCkUgSS
 BFIEkgTwpBbmQgb24gaGlzIGZhcm0gaGUgaGFk
 IHNvbWUgZHVja3MKRSBJIEUgSSBPCldpdGggYS
 BxdWFjayBxdWFjayBoZXJlLAphIHF1YWNrIHF1
 YWNrIHRoZXJlLApldmVyeSB3aGVyZSBhIHF1YW
 NrIHF1YWNrCkUgSSBFIEkgTwo=

查看此问题以获取将二进制数据上传到 Web 请求的示例:使用 HTTPWebrequest 上传文件(多部分/表单数据)

相关内容

  • 没有找到相关文章

最新更新