예제 #1
0
        /// <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());
            }
        }
예제 #2
0
        /// <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)));
     }
 }