/// <summary> /// 將 HttpResponseMessage 物件轉換為 HttpCallResult /// 未來可能會 紀錄對外 API log /// </summary> /// <param name="response"></param> /// <returns></returns> public HttpCallResult TransforReturnResult(HttpResponseMessage response) { HttpCallResult result = new HttpCallResult { StatusCode = ((int)response.StatusCode).ToString() }; if (response.StatusCode == HttpStatusCode.OK || response.StatusCode == HttpStatusCode.Created) { result.FaultInfo = null; result.ReturnContent = response.Content.ReadAsStringAsync().Result; } else if (response.StatusCode == HttpStatusCode.NotFound) { return(null); } else { //Error StatusCode not 200 201 result.ReturnContent = string.Empty; result.FaultInfo = new ApiFault { Code = ((int)response.StatusCode).ToString(), Message = response.Content.ReadAsStringAsync().Result }; } return(result); }
public HttpCallResult Get(string url, Dictionary <string, string> headers) { HttpCallResult result = null; foreach (KeyValuePair <string, string> item in headers) { _httpClient.DefaultRequestHeaders.Add(item.Key, item.Value); } using (var request = new HttpRequestMessage(HttpMethod.Get, url)) { using (HttpResponseMessage response = _httpClient.SendAsync(request).Result) { result = TransforReturnResult(response); } } return(result); }
public HttpCallResult Post(string url, Dictionary <string, string> headers, string content) { HttpCallResult result = null; foreach (KeyValuePair <string, string> item in headers) { _httpClient.DefaultRequestHeaders.Add(item.Key, item.Value); } using (var request = new HttpRequestMessage(HttpMethod.Post, url)) { request.Content = new StringContent(content, Encoding.UTF8, "application/json"); using (HttpResponseMessage response = _httpClient.SendAsync(request).Result) { result = TransforReturnResult(response); } } return(result); }