Send requests with C#
[ 1 Introduction ] [ 2 Parameters ]
Introduction
After authorizing API requests as required and setting up a C# environment, you can use the script below to send API requests using C#:
using System.Security.Cryptography;
using System.Text;
namespace Devo
{
  class Program
  {
    public void callDevoAPI()
    {
      String key = "YOUR-DEVO-API-KEY-GOES-HERE";
      String secret = "YOUR-DEVO-API-SECRET-GOES-HERE";
      String cloud = "us";
      String query = "from box.unix select *";
      String body = "" +
        "{\"from\": \"2h\", " +
        "\"to\": \"now\", " +
        "\"query\":\"" + query + "\"," +
        "\"limit\": 10, " +
        "\"mode\": { \"type\":\"csv\"}}";
      var httpclient = new HttpClient();
      httpclient.Timeout = TimeSpan.FromMinutes(9999);
      String queryEndpoint = "https://apiv2-" + cloud + ".devo.com/search/query";
      var webRequest = new HttpRequestMessage(HttpMethod.Post, queryEndpoint)
      {
        Content = new StringContent(body, Encoding.UTF8, "application/json")
      };
      String unixTimestamp = (DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalMilliseconds.ToString();
      unixTimestamp = unixTimestamp.Substring(0, unixTimestamp.IndexOf("."));
      String data = key + body + unixTimestamp;
      byte[] byteArrayData = Encoding.UTF8.GetBytes(data);
      byte[] byteArraySecret = Encoding.UTF8.GetBytes(secret);
      var hash = new HMACSHA256(byteArraySecret);
      byte[] byteSigned = hash.ComputeHash(byteArrayData);
      var hexString = BitConverter.ToString(byteSigned);
      String sign = hexString.Replace("-", "").ToLower();
      httpclient.DefaultRequestHeaders.Add("x-logtrust-apikey", key);
      httpclient.DefaultRequestHeaders.Add("x-logtrust-timestamp", unixTimestamp);
      httpclient.DefaultRequestHeaders.Add("x-logtrust-sign", sign);
      try
      {
        var response = httpclient.Send(webRequest);
        Console.WriteLine(response.Content.ReadAsStringAsync().Result);
      }
      catch (Exception ex)
      {
        Console.WriteLine("Exception occured: " + ex.Message);
      }
    }
    public static void Main(string[] args)
    {
      Program p = new Program();
      p.callDevoAPI();
    }
  }
}
Parameters
Replace the following parameters in the script using your own information:
| Enter the API key of your Devo domain. To get it, access Devo and go to Administration → Credentials → Access Keys. Learn more in this article. |
---|---|
| Enter the API secret of your Devo domain. To get it, access Devo and go to Administration → Credentials → Access Keys. Learn more in this article. |
| Specify the Devo cloud of your domain. The available options are |
| Enter the query you want to run. |
| Specify the body of your requests, following the format of the script above. |