簡體   English   中英

c#使用Skydrive REST API進行PUT請求時遇到問題

[英]c# Trouble with PUT request using Skydrive REST API

我正在嘗試通過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來執行此操作,但是我遇到了類似的問題。 當我運行以下代碼時,我返回了異常“提供的Content-Type標頭'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保留為空白,並且可以正常工作。 謝謝 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM