You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
3.8 KiB
97 lines
3.8 KiB
using Common.Models;
|
|
using Common.Models.RequestResponse;
|
|
using Common.Utility;
|
|
using log4net;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Net.Http;
|
|
using System.Net.Http.Headers;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Common.Utility
|
|
{
|
|
public class ApiHelper
|
|
{
|
|
|
|
private static int timeOut = 100;
|
|
private string tp_base_url = GetStatic.ReadWebConfig("signature_Base_Url", "");
|
|
private readonly ILog _log = LogManager.GetLogger(typeof(ApiHelper));
|
|
|
|
public ResponseModel ThirdPartyApi<RequestModel, ResponseModel>(RequestModel model, string method, out TPResponse jsonResponse, string MethodType = "post")
|
|
{
|
|
ResponseModel _responseModel = default(ResponseModel);
|
|
using (HttpClient httpClient = new HttpClient())
|
|
{
|
|
try
|
|
{
|
|
httpClient.BaseAddress = new Uri(tp_base_url);
|
|
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
|
|
httpClient.Timeout = new TimeSpan(0, 0, timeOut);
|
|
HttpResponseMessage resp = new HttpResponseMessage();
|
|
if (MethodType.ToLower().Equals("get"))
|
|
resp = httpClient.GetAsync(method).Result;
|
|
if (MethodType.ToLower().Equals("put"))
|
|
{
|
|
StringContent jbdContent = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json");
|
|
resp = httpClient.PutAsync(method, jbdContent).Result;
|
|
}
|
|
if (MethodType.ToLower().Equals("post"))
|
|
{
|
|
|
|
StringContent jbdContent = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json");
|
|
resp = httpClient.PostAsync(method, jbdContent).Result;
|
|
}
|
|
string resultData = resp.Content.ReadAsStringAsync().Result;
|
|
if (resp.IsSuccessStatusCode)
|
|
{
|
|
var result = resp.Content.ReadAsStringAsync().Result;
|
|
JObject a = JObject.Parse(result);
|
|
_responseModel = a.ToObject<ResponseModel>();
|
|
|
|
}
|
|
else
|
|
{
|
|
_log.Debug("ThirdPartyApi | RESPONSE: " + resp.ToString());
|
|
jsonResponse = new TPResponse()
|
|
{
|
|
Id = resp.StatusCode.ToString(),
|
|
Msg = resp.Content.ToString(),
|
|
Data = resp
|
|
};
|
|
}
|
|
}
|
|
catch (HttpRequestException ex)
|
|
{
|
|
jsonResponse = new TPResponse()
|
|
{
|
|
ResponseCode = "999",
|
|
Msg = ex.ToString(),
|
|
Data = ex.Data,
|
|
};
|
|
_responseModel = default(ResponseModel);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
jsonResponse = new TPResponse()
|
|
{
|
|
ResponseCode = "999",
|
|
Msg = ex.ToString(),
|
|
Data = ex.Data,
|
|
};
|
|
_responseModel = default(ResponseModel);
|
|
}
|
|
};
|
|
|
|
jsonResponse = new TPResponse()
|
|
{
|
|
ResponseCode = "0",
|
|
Msg = "Api Calling process successfully!"
|
|
};
|
|
return _responseModel;
|
|
}
|
|
}
|
|
}
|