vpetkovic
10/1/2019 - 2:17 PM

Call Web API

using RestSharp using HTTPClient using WebClient

using RestSharp; 
using System.Net;
using System.Net.Http;
        
public static void useRestSharp(string url)
{
    var client = new RestClient(url);
    var request = new RestRequest(Method.POST);

    request.AddHeader("Content-Type", "application/json");
    request.AddParameter("undefined", APIRequest(), ParameterType.RequestBody);
    
    IRestResponse response = client.Execute(request);
    Console.WriteLine(response.Content);
}

public static async void useHTTPClient(string url)
{
    var httpClient = new HttpClient();

    var request = httpClient.PostAsync(url, new StringContent(APIRequest(), Encoding.UTF8, "application/json")).Result;

    var content = await request.Content.ReadAsStringAsync();

    Console.WriteLine(content);
}

public static void useWebClient(string url)
{
    var webClient = new WebClient();

    webClient.Headers[HttpRequestHeader.ContentType] = "application/json";
    var response = webClient.UploadString(url, APIRequest());

    Console.WriteLine(response);
}

// Could be serialized JSON object using json.net or newtonsoft.json
public static string APIRequest()
{
    string source = @"C:\Users\vpetkovic\Desktop\NH example.txt";

    dynamic obj = new ExpandoObject();
    obj.username = "data";
    obj.password = "data";
    obj.fileName = Path.GetFileName(source);
    obj.file = Convert.ToBase64String(File.ReadAllBytes(source));

    string apiRequest = "{\r\n  \"username\": \"" + obj.username + "\",\r\n  \"password\": \"" + obj.password + "\",\r\n  \"fileName\": \"" + obj.fileName + "\",\r\n  \"file\": \"" + obj.file + "\"\r\n}";

    return apiRequest;
}