5.5.1 Print Label (C#)

Sample source code to print label (requires Newtonsoft.JSON from NuGet)
using System; using System.Collections.Generic; using System.IO; using System.Net; using Newtonsoft.Json; namespace PrinshipShipment { public class APIHelper { const string PRODUCTION_URL = "https://apiv2.unixus.com.my/"; const string SANDBOX_URL = "https://sandbox-apiv2.unixus.com.my/"; const string myRefreshToken = "88888888"; // Replace with your Refresh Token static string api_url = SANDBOX_URL; public static string GetAccessToken() { var httpWebRequest = (HttpWebRequest)WebRequest.Create(api_url + "Token/Refresh"); httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "POST"; using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { string json = "{ 'RefreshToken' : '" + myRefreshToken + "'}'"; streamWriter.Write(json); streamWriter.Flush(); streamWriter.Close(); } var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); var token = ""; using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { try { string result = streamReader.ReadToEnd(); dynamic obj = JsonConvert.DeserializeObject<object>(result); token = obj.AccessToken; } catch (System.Exception ex) { Console.WriteLine(string.Format("Error occurred getting AccessToken: {0}", ex.Message)); } } return token; } public static void PrintShipment(List<string> HawbNo) { try { var httpWebRequest = (HttpWebRequest)WebRequest.Create(api_url + "shipment/v2/Print"); httpWebRequest.ContentType = "application/json"; httpWebRequest.Headers.Add("X-Version", "1"); httpWebRequest.Headers.Add("Authorization", "Bearer " + GetAccessToken()); httpWebRequest.Method = "POST"; for (int i=0; i < HawbNo.Count; i++) { HawbNo[i] = "'" + HawbNo[i] + "'"; } using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { string json = "{'HawbNo': [" + string.Join(",", HawbNo) + "]}"; streamWriter.Write(json); streamWriter.Flush(); streamWriter.Close(); } var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); var result = ""; using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { result = streamReader.ReadToEnd(); } dynamic obj = JsonConvert.DeserializeObject<object>(result); if (obj.Summary.Success > 1) { // Successful, save PDF to local file File.WriteAllBytes("Label.PDF", Convert.FromBase64String((string)obj.LabelResponse.LabelImageString)); } else { // Failed, print error Console.WriteLine("Print Shipment Failed"); foreach (dynamic err in obj.Errors) { Console.WriteLine(string.Format("Error Message: {0}", err.ErrorMessage)); } } } catch (Exception ex) { Console.WriteLine(string.Format("Error occurred creating/processing Print Request: {0}", ex.Message)); } } } class Program { static void Main(string[] args) { List<string> hawbNos = new List<string>(); hawbNos.Add("458040010620544"); hawbNos.Add("458040010620566"); APIHelper.PrintShipment(hawbNos); } } }

Copyright © 2019 Unixus Solutions Sdn. Bhd. All rights reserved.