5.6.1 Update Shipment Weight (C#)

Update Shipment Weight

Sample source code to update shipment weight (requires Newtonsoft.JSON from NuGet)
using System; using System.Collections.Generic; using System.IO; using System.Net; using Newtonsoft.Json; namespace PrinshipShipment { public class ShipmentWeight { public ShipmentWeight(string hawbno, float newWeight) { HawbNo = hawbno; ActualWeight = newWeight; } public string HawbNo { get; set; } public float ActualWeight { get; set; } } public class ShipmentWeightRequest { public ShipmentWeightRequest() { ShipmentsWeight = new List<ShipmentWeight>(); } public List<ShipmentWeight> ShipmentsWeight { get; set; } } 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 UpdateShipmentWeight(ShipmentWeightRequest weightsRequest) { try { var httpWebRequest = (HttpWebRequest)WebRequest.Create(api_url + "shipment/v2/UpdateWeight"); httpWebRequest.ContentType = "application/json"; httpWebRequest.Headers.Add("X-Version", "1"); httpWebRequest.Headers.Add("Authorization", "Bearer " + GetAccessToken()); httpWebRequest.Method = "POST"; using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { string json = JsonConvert.SerializeObject(weightsRequest); Console.WriteLine(json); 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 Console.WriteLine("Successfully updated weights"); } 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 Updating Shipment Weights: {0}", ex.Message)); } } } class Program { static void Main(string[] args) { ShipmentWeightRequest reqObj = new ShipmentWeightRequest(); ShipmentWeight wgt1 = new ShipmentWeight("458040010620581", 0.7f); reqObj.ShipmentsWeight.Add(wgt1); ShipmentWeight wgt2 = new ShipmentWeight("458040010620566", 1.4f); reqObj.ShipmentsWeight.Add(wgt2); APIHelper.UpdateShipmentWeight(reqObj); Console.ReadLine(); } } }

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