C# json及post方面操作

这篇博客展示了如何在C#中进行JSON数据的处理,包括从URL获取JSON数据,使用Fiddler发送GET请求,以及使用Newtonsoft.Json进行反序列化。此外,还演示了如何设置POST请求,包括设置请求头、内容类型和发送POST数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

var host = "sycm.taobao.com";
            Session oSession = GetHostSession(host);
            if (oSession.oRequest.host == host)
            {
                //地域分布城市
                string tmpUrl = string.Format("sycm.taobao.com/datawar/screen/reception/map/city.json?indexCode=uv&_=1541649462362&token=ed590025c");
                var oSD = new System.Collections.Specialized.StringDictionary();
                Session tmpSession = oSession;
                tmpSession.RequestMethod = "GET";
                tmpSession.url = tmpSession.url.Replace(tmpSession.url, tmpUrl);
                //tmpSession.utilReplaceInRequest(tmpSession.GetRequestBodyAsString(), postData);
                var res = FiddlerApplication.oProxy.SendRequestAndWait(tmpSession.oRequest.headers, tmpSession.RequestBody, oSD, null);
                if (200 == res.responseCode)
                {
                    var body = res.GetResponseBodyAsString();
                    if (body.Contains("login")) { }
                    Console.WriteLine(body);
                    //{ "traceId":"0b1574fe15415791889068041e24fd","code":0,"message":"操作成功","data":{ "updateTime":"2018-11-07 16:26:28","interval":5,"timestamp":1541579188983,"data":{ "uvWl":{ "value":518847},"payAmtWlRatio":{ "value":0.9422983830859517},"uv":{ "value":527342},"payByrCnt":{ "value":1058},"payPct":{ "value":171},"payAmtWl":{ "value":170520},"uvWlRatio":{ "value":0.9838909095046479},"payCnt":{ "value":1519},"payAmt":{ "value":180962} } } }
                    var model = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, dynamic>>(body);
                    //var member_list = new List<Dictionary<string, dynamic>>(model["data"]["data"].
                    //                                        ToArray(typeof(Dictionary<string, dynamic>)));
                    List<Dictionary<string, dynamic>> member_list = model["data"]["data"].ToObject<List<Dictionary<string, dynamic>>>();
                    member_list.ForEach(member =>
                    {
                        Console.WriteLine(string.Format("{0}-{1}-{2}", member["areaId"]["value"], member["cityName"]["value"], member["uv"]["value"]));
                    });
                    //var sqlText = string.Format("INSERT INTO [MiiowDB].[dbo].[sycm_11sales] ([销售金额],[销售金额WL],[全店累计支付买家数],[全店平均客单价],[全店累计支付件数],[全店累计访客数],[全店累计访客数WL],updateTime) values({0},{1},{2},{3},{4},{5},{6},'{7}')",
                    //  model["data"]["data"]["payAmt"]["value"], model["data"]["data"]["payAmtWl"]["value"], model["data"]["data"]["payByrCnt"]["value"]
                    //  , model["data"]["data"]["payPct"]["value"], model["data"]["data"]["payCnt"]["value"], model["data"]["data"]["uv"]["value"], model["data"]["data"]["uvWl"]["value"], model["data"]["updateTime"]);
                    //TSQL.InsertQuery(sqlText, Uniti.connectionString);

                }

 

 

 

       var http = WebRequest.Create(url) as HttpWebRequest;
            http.CookieContainer = Program.cookieContainer;
            http.ContentType = "application/json; charset=UTF-8";
            http.Method = "POST";
            var serializer = new JavaScriptSerializer();
            var base_req_param = new { Uin = Int64.Parse(Program.wxuin), Sid = Program.wxsid, Skey = Program.skey, DeviceID = Program.deviceId };
            var BaseRequest = serializer.Serialize(new { BaseRequest = base_req_param });
            Console.WriteLine(String.Format("BaseRequest: {0}", BaseRequest));
            var response = getPostResponse(http, BaseRequest);
            var dic = deserilizeJson(response);
            Console.WriteLine(dic);
            Program.self = dic["User"];
            var ErrMsg = dic["BaseResponse"]["ErrMsg"];
            if (ErrMsg.Length > 0)
            {
                updateUITextLine(info_display, ErrMsg, Environment.NewLine, Color.Red);
            }
            if (dic["BaseResponse"]["Ret"] != 0)
            {
                return false;
            }

 

 

    var model = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, dynamic>>(brandItem.extend.blockSellerInfos);
                            // 3、遍历字典 并将各个条目保存到数据库
                            foreach (var _item in model)
                                if (!(_item.Value is string))
                                    // 假装取出每个设备的Model字段
                                    //var itemModel = _item.Value.model;
                                    shopName = _item.Value.shopName;

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值