5.3.1 Delete Shipments (C#)

Delete Shipment

Sample source code to delete shipment (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"; 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 DeleteShipment(List<string> HawbNo) { try { var httpWebRequest = (HttpWebRequest)WebRequest.Create(api_url + "shipment/v2/Delete"); 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 > 0 || obj.Summary.Failed > 0) { foreach (dynamic resp in obj.ShipmentsResponse) { if (true == (bool)resp.IsSuccess) Console.WriteLine("Deleted HawbNo: " + resp.ShipmentDetails.HawbNo); else { foreach (dynamic err in resp.Errors) Console.WriteLine(err.ErrorMessage); } } } } catch (Exception ex) { Console.WriteLine(string.Format("Error occurred Delete Shipment Request: {0}", ex.Message)); } } } class Program { static void Main(string[] args) { List<string> hawbnos = new List<string>(); hawbnos.Add("458040010409752"); APIHelper.DeleteShipment(hawbnos); Console.ReadLine(); } } }

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