/
Send requests with C#
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. |