如何使用 Rest api 和 oauth2.0 創建文件夾和上傳文件 (How to create folder and upload file using Rest api and oauth2.0)


問題描述

如何使用 Rest api 和 oauth2.0 創建文件夾和上傳文件 (How to create folder and upload file using Rest api and oauth2.0)

I want to create a folder and upload files using rest api  my code is like this

  public string CreateFolder(string FolderName)
    {
        int WorkSpaceId = 330201;
        int id = 168079105;
        var queryString = HttpContext.Current.Session["tokenSession"];
        var request = WebRequest.Create(RequestProfileUrl + FolderName);
        request.AuthenticationLevel = System.Net.Security.AuthenticationLevel.None;
        request.Headers.Add("Authorization", "Bearer " + AccessToken);
        request.ContentType = "multipart/form‑data";
        request.Method = "POST";
        var response = request.GetResponse();
        HttpContext.Current.Response.Redirect("" + request.RequestUri);
        using (var responseStream = response.GetResponseStream())
        {
            var reader = new StreamReader(responseStream);
            var responseText = reader.ReadToEnd();
            reader.Close();
            return responseText;
        }
    }

I have to do like this 

POST https://apis.live.net/v5.0/me/skydrive
Authorization: Bearer ACCESS_TOKEN
Content‑Type: multipart/form‑data

{
    "name": "My example folder"
}`

I added request header and content‑type, I don't know how to add name parameter to my request.


參考解法

方法 1:

To write the body of your POST request  you need to get the request stream first, and then write to it. See the sample code below. Note that I changed the Content‑Type from "multipart/form‑data" to "application/json" as this is what your data seems to be.

       // String with the body content 
        string postBody = "{\"name\":\"myfoldername\"}";
        ASCIIEncoding encoding = new ASCIIEncoding ();
        byte[] byte1 = encoding.GetBytes (postBody);

        // Set Content type to application/json
        myHttpWebRequest.ContentType = "application/json";

        // Set content length of the string being posted.
        myHttpWebRequest.ContentLength = byte1.Length;

        // Get the request stream and write body bytes to it
        Stream newStream = myHttpWebRequest.GetRequestStream ();
        newStream.Write (byte1, 0, byte1.Length);

(by user2322397Federico Raggi)

參考文件

  1. How to create folder and upload file using Rest api and oauth2.0 (CC BY‑SA 3.0/4.0)

#onedrive #java #oauth-2.0 #REST #C#






相關問題

WP7-Skydrive API 下載任何文件並保存隔離存儲 (WP7-Skydrive API Download Any file and Save Isolated Storage)

如何編寫 .NET 控制台應用程序來訪問 SkyDrive? (How can I write a .NET console application to access SkyDrive?)

Loại đăng nhập Skydrive API Windows 8 (Skydrive API login type Windows 8)

如何使用 Rest api 和 oauth2.0 創建文件夾和上傳文件 (How to create folder and upload file using Rest api and oauth2.0)

從 ERP 保存到 OneDrive (Save to OneDrive from ERP)

適用於 Windows 通用 APP 的 OneDrive Api (OneDrive Api for Windows Universal APP)

一種 Drive / Office365 與 Google Apps Script 類似的腳本語言 (One Drive / Office365 similar scripting language as the Google Apps Script)

OneDrive API 瀏覽器 C# (OneDrive API browser C#)

從 Python 應用程序訪問 Microsoft Live 服務 (Access Microsoft Live services from Python application)

一個驅動器 api 安全 URL (One drive api secure url)

嘗試使用 get-PnPFile 從 OneDrive 獲取文件的所有版本時找不到文件 (File not found trying to get all versions of a file from OneDrive using get-PnPFile)

一個驅動器遷移 (One Drive Migration)







留言討論