c# 使用 Skydrive REST API 的 PUT 请求出现问题

标签 c# rest onedrive

我正在尝试通过 REST API 将文件上传到 SkyDrive。我一直在使用以下代码,但一直收到“(415) 不支持的媒体类型”。错误:

            var requestUriFile =
                             new StringBuilder("https://apis.live.net/v5.0/<folderid>/files/testfile.txt");
        requestUriFile.AppendFormat("?access_token={0}", accessTokenM);

        byte[] arr = System.IO.File.ReadAllBytes("C:\\temp\\testFile.txt");
        HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(requestUriFile.ToString());
        request.Method = "PUT";
        request.ContentType = "text/plain";
        request.ContentLength = arr.Length;
        Stream dataStream = request.GetRequestStream();
        dataStream.Write(arr, 0, arr.Length);
        dataStream.Close();
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        string returnString = response.StatusCode.ToString();

我也尝试过使用 RestSharp 来执行此操作,但我遇到了类似的问题。当我运行下面的代码时,我得到了异常“The provided Content-Type header 'multipart/form-data; boundary\u003d-------------------- ------28947758029299' 不受支持。

            byte[] arr = System.IO.File.ReadAllBytes("C:\\temp\\testFile.txt");

        var client = new RestClient("https://apis.live.net/v5.0/");
        var request = new RestRequest(Method.PUT);
        request.Resource = "<folderId>/files/testfile.txt?access_token=" + accessTokenM;
        request.AddHeader("content-type", "text/plain;");
        request.AddFile("filename", arr, "testfile.txt", "text/plain");



        var responseIn = client.Execute(request);

我在这里做错了什么?

最佳答案

好的,我解决了。显然我需要做的就是将 ContentType 留空并且它可以工作。谢谢:)

关于c# 使用 Skydrive REST API 的 PUT 请求出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13334076/

相关文章:

php - 401 Unauthorized DELETE request to RESTful API 通过 Ajax 在 laravel 中

django - 没有 allauth、rest_auth 和 facebook 用户名的用户

java - OneDrive REST API 为文件上传提供 400 个无效动词

javascript - 使用 OneDrive API (JavaScript) 创建空白文件 (*.docx | *.ppt | *.xlsx)

c# - 如何在运行时初始化包含工件的所有静态类的列表,以便能够使用其参数动态调用其方法?

c# - 404 时重定向到 home/index

c# - 传递运算符和其他参数

javascript - 一个 Controller 中的多个路由导致 400 :bad request

java - 使用 SAML 的 REST API 身份验证

android - OneDrive 整合