zoukankan      html  css  js  c++  java
  • 解析Action返回的Json数据

    WebRequest和HttpClient的Get、post方式解析:

    namespace Fractalist.Benz.Controllers
    {
        public class ResolveResultController : Controller
        {
            public void WebRequestPost()
            {
                HttpWebResponse response = null;
                try
                {
                    string url = "http://localhost:8022/ResolveResult/PostTest";
                    dynamic expando = new System.Dynamic.ExpandoObject();
                    expando.name = "gw";
                    var jsonInfo = JsonConvert.SerializeObject(expando);
                    byte[] byteArray = Encoding.UTF8.GetBytes(jsonInfo);
                    //string result = new HttpClient().GetStringAsync(url).Result;
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                    request.Method = "POST";
                    request.ContentType = "application/json";
                    request.ContentLength = byteArray.Length;
                    Stream newStream = request.GetRequestStream();
                    newStream.Write(byteArray, 0, byteArray.Length); //写入参数 
                    newStream.Close();
                    response = (HttpWebResponse)request.GetResponse();
                }
                catch (WebException ex)
                {
                    response = (HttpWebResponse)ex.Response;
                }
                StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
                string textResponse = sr.ReadToEnd(); // 返回的数据
                JsonResultInfo deinfo = JsonConvert.DeserializeObject<JsonResultInfo>(textResponse);
                var results = deinfo.Result;
                var message = deinfo.message;
            }
    
            public void HttpClientGet()
            {
                string url = "http://localhost:8022/ResolveResult/GetTest";
                //封装请求参数  
                Task<string> response = new HttpClient().GetStringAsync(url + "?name=gw");
                string result = response.Result;
                JsonResultInfo deinfo = JsonConvert.DeserializeObject<JsonResultInfo>(result);
                var results = deinfo.Result;
                var message = deinfo.message;
            }
            public async Task<ActionResult> HttpClientPost()
            {
                string url = "http://localhost:8022/ResolveResult/PostTest";
                var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip };
                using (var client = new HttpClient(handler))
                {
                    //第一种方式
                    var content = new FormUrlEncodedContent(new Dictionary<string, string>()
                    {
                        {"name","glw"}
                    });
                    //第二种方式
                    //string jsonData = ReturnJson("name", "glw");
                    //var content = new StringContent(jsonData, Encoding.UTF8, "application/json");
                    //封装请求参数  
                    var response = await client.PostAsync(url, content);
                    string result = await response.Content.ReadAsStringAsync();
    
                    JsonResultInfo deinfo = JsonConvert.DeserializeObject<JsonResultInfo>(result);
                    var results = deinfo.Result;
                    var message = deinfo.message;
                    return Content(message);
                }
            }
    
            [AllowAnonymous]
            [HttpPost]
            public JsonResult PostTest(string name)
            {
                string.Format(@"【class】:ResolveResultController,【method】:Test,【message】:name---{0}"
                   , name).LogInfo();
                return Json(new { Result = false, Message = name + "我是好人也是个坏人" });
            }
    
            [AllowAnonymous]
            public JsonResult GetTest(string name)
            {
                return Json(new { Result = false, Message = name + "我是好人也是个坏人" }, JsonRequestBehavior.AllowGet);
            }
    
            /// <summary>
            /// 组装请求json
            /// </summary>
            /// <param name="code"></param>
            /// <param name="value"></param>
            /// <returns></returns>
            static string ReturnJson(string code, string value)
            {
                Hashtable hastable = new Hashtable();
                hastable.Add(code, value);
                return Newtonsoft.Json.JsonConvert.SerializeObject(hastable);
            }
        }
    }
  • 相关阅读:
    Android Studio中图片的格式转换
    VS2013关于C++ Primer5 的3.42题报错
    VS2013 注释多行与取消多行注释快捷键
    【Ubuntu】安装tar.gz文件
    vs下程序运行结果框闪退的解决方案
    深度学习相关链接
    问题解决:Failed to get convolution algorithm. This is probably because cuDNN failed to initialize
    【验证码识别】Pillow、tesseract-ocr与pytesseract模块的安装以及错误解决
    霍夫变换原理(看完就懂)
    python 字节数组和字符串的互转
  • 原文地址:https://www.cnblogs.com/xiaoweigogo/p/7808455.html
Copyright © 2011-2022 走看看