/// <summary> /// 请求请求JSON /// </summary> /// <param name="httpClient">http客户端</param> /// <param name="method">方法</param> /// <param name="callbackRequest">回调请求</param> /// <param name="data">数据</param> /// <returns>返回字符串</returns> public static string RequestJson(this HttpClient httpClient, string method, Func <HttpContent, Task <HttpResponseMessage> > callbackRequest, object data = null) { string dataJson = data == null ? null : JsonUtil.SerializeIgnoreNull(data); HttpContent content = new StringContent(dataJson); content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); Task <HttpResponseMessage> task = null; httpClient.DefaultRequestHeaders.Add("Method", method); task = callbackRequest(content); task.Wait(); if (task.Result.StatusCode == System.Net.HttpStatusCode.OK) { var readTask = task.Result.Content.ReadAsStringAsync(); readTask.Wait(); return(readTask.Result); } else { throw new Exception(task.Result.StatusCode.ToString()); } }
/// <summary> /// POST请求JSON /// </summary> /// <param name="url">URL</param> /// <param name="data">数据</param> /// <returns>返回字符串</returns> public static string PostJson(string url, object data = null) { string dataJson = data == null ? null : JsonUtil.SerializeIgnoreNull(data); HttpContent content = new StringContent(dataJson); content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); Task <HttpResponseMessage> task = null; using (var httpClient = CreateHttpClient()) { httpClient.DefaultRequestHeaders.Add("Method", "Post"); task = httpClient.PostAsync(url, content); task.Wait(); } if (task.Result.StatusCode == System.Net.HttpStatusCode.OK) { var readTask = task.Result.Content.ReadAsStringAsync(); readTask.Wait(); return(readTask.Result); } else { throw new Exception(task.Result.StatusCode.ToString()); } }
/// <summary> /// 将数据转换为字节流 /// </summary> /// <typeparam name="T">数据类型</typeparam> /// <param name="data">数据</param> /// <returns>字节流</returns> public static byte[] ConvertBytes <T>(T data) { if (typeof(T) == typeof(string)) { return(Encoding.UTF8.GetBytes(data as string)); } else { return(Encoding.UTF8.GetBytes(JsonUtil.SerializeIgnoreNull(data))); } }