5.9.1 Search Pickup (C#)

Search Pickup

Sample source code to search pickup (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 string SearchPickup(List<string> PickupNo) { var result = ""; try { var httpWebRequest = (HttpWebRequest)WebRequest.Create(api_url + "pickup/v1/Search"); httpWebRequest.ContentType = "application/json"; httpWebRequest.Headers.Add("X-Version", "1"); httpWebRequest.Headers.Add("Authorization", "Bearer " + GetAccessToken()); httpWebRequest.Method = "POST"; for (int i = 0; i < PickupNo.Count; i++) { PickupNo[i] = "'" + PickupNo[i] + "'"; } using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { string json = "{'PickupNo': [" + string.Join(",", PickupNo) + "]}"; Console.WriteLine(json); streamWriter.Write(json); streamWriter.Flush(); streamWriter.Close(); } var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { result = streamReader.ReadToEnd(); } dynamic obj = JsonConvert.DeserializeObject<object>(result); if (obj.Summary.Success > 0) { foreach (dynamic pickup in obj.Pickup) { if (true == (bool)pickup.IsSuccess) Console.WriteLine("PickupNo: " + pickup.PickupDetails.PickupNo); else { foreach (dynamic err in pickup.Errors) Console.WriteLine(err.ErrorMessage); } } } else { // Failed, search error Console.WriteLine("Search pickup jobs 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 modifying Pickup Request: {0}", ex.Message)); } return result; } } class Program { static void Main(string[] args) { List<string> pickupnos = new List<string>(); pickupnos.Add("PKR180625182238"); pickupnos.Add("PKR190104131458"); APIHelper.SearchPickup(pickupnos); Console.ReadLine(); } } }

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