Developer Documentation
  • Introduction
  • Recipes
    • Using Recipes with Lingk APIs
  • Lingk REST APIs
    • Using Postman with Lingk APIs
    • Events & Webhooks
    • Code Samples
      • C#
      • ColdFusion
      • Go
      • Java
      • Node.js
      • PHP
      • Python
      • Salesforce Apex
  • API Explorer
  • API Plugin for Apache Nifi
    • Docker on Windows Installation Guide
    • Colleague Implementation Notes
    • Testing the API Plugin with Postman
Powered by GitBook
On this page

Was this helpful?

  1. Lingk REST APIs
  2. Code Samples

C#

using System;
using System.Security.Cryptography;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Web;
​
public class Program
{
    static String entrypoint = "http://www.lingkapis.com";
    static String apikey = "[your key]";
    static String secret = "[your secret]";
    private static readonly Encoding encoding = Encoding.UTF8;
​
    public static void Main()
    {
        Program.servicecall("/v1/@self/ps/courses", "GET");
        Console.Read();
    }
​
    public static async void servicecall(String service, String metho)
    {
        String requestDate;
        UriBuilder uri = new UriBuilder(entrypoint + service);
        Console.WriteLine(uri);
​
        requestDate = DateTime.UtcNow.ToString("R");

        HttpClientHandler handler = new HttpClientHandler() { };
        string fullMessage = "date: " + requestDate + "\n(request-target): " + method.toLower() + " " + service;
        using (var client = new HttpClient(handler))
        {
​
            string hashString = CreateSignature(fullMessage, secret);
            String authHeader = "Signature keyId=\"" + apikey + "\",headers=\"date (request-target)\",algorithm=\"hmac-sha1\",signature=\"" + WebUtility.UrlEncode(hashString) + "\"";

            client.BaseAddress = new System.Uri(entrypoint);
            client.DefaultRequestHeaders.Add("Date", requestDate);
            client.DefaultRequestHeaders.Add("Authorization", authHeader);
            var resp2 = await client.GetAsync(service);
            var aaa = resp2.Content;
            string result = await aaa.ReadAsStringAsync();
            Console.WriteLine(result);
​
        }
    }
​
    private static string CreateSignature(string message, string secret)
    {
        secret = secret ?? "";
        var encoding = new System.Text.ASCIIEncoding();
        byte[] keyByte = encoding.GetBytes(secret);
        byte[] messageBytes = encoding.GetBytes(message);
        using (var hmacsha1 = new HMACSHA1(keyByte))
        {
            byte[] hashmessage = hmacsha1.ComputeHash(messageBytes);
            return Convert.ToBase64String(hashmessage);
        }
    }
​
}
PreviousCode SamplesNextColdFusion

Last updated 5 years ago

Was this helpful?