C#でGETやPOSTを使ってWeb API(OneDriveAPI)をつっつく

 このブログのバイナリファイルのストレージはOneDriveを使っている。そしてファイルに関するデータをそのAPIからとってきている。そこでWeb API(OneDrive)のC#でのつっつき方をまとめておく。OneDriveAPIを使うのに必要な認証は以前にやったので今回は認証のあとから入る。
認証


 まず基本となるHttpClientを用意する。これにトークンをヘッダでくっつけて以降のリクエストは行う。
var httpClient = new System.Net.Http.HttpClient();

httpClient.DefaultRequestHeaders.Add("Authorization", $"BEARER {oauthToken}");


 GETでつっつく
var uri = $"https://api.onedrive.com/v1.0/drive/items/{id}/?expand=thumbnails(select=small,source)";

var response = await httpClient.GetAsync(uri);
var responseBody = await response.Content.ReadAsStringAsync();



 POSTでJSONを投げてつっつく
var dict = new Dictionary<string, string>

{
{ "type", "embed" },
};
var json = JsonConvert.SerializeObject(dict);
var content = new StringContent(json, Encoding.UTF8, "application/json");

var uri = $"https://api.onedrive.com/v1.0/drive/items/{id};
var response = await httpClient.PostAsync(uri, content);



 POSTでmultipart/form-dataを投げるのは認証の時にやった。おさらい
var content = new FormUrlEncodedContent(new Dictionary<string, string>

{
{ "client_id", client_id },
{ "redirect_uri", redirect_uri },
{ "client_secret", client_secret },
{ "code", code },
{ "grant_type", "authorization_code" },
});
var codeResponse = await httpClient.PostAsync("https://login.live.com/oauth20_token.srf", content);
comment: 0