• Get json formatted string from web by sending HttpWebRequest and then deserialize it to get needed data


            static string GetLotteryByPhase(string phaseNo)
            {
                // Set the url and charset
                string url = "http://baidu.lecai.com/lottery/draw/ajax_get_detail.php?lottery_type=50&phase=" + phaseNo;
                string charset = "gb2312";
    
                dynamic lotteryObj = null;
                JArray redBalls = null;
                JArray blueBall = null;
                string lotteryStr = GetValueFromWeb(url, charset);
                try
                {
                    // Deserialize the json string
                    lotteryObj = JsonConvert.DeserializeObject(lotteryStr);
    
                    // Get the expected data from json structure 
                    redBalls = lotteryObj.data.result.result[0].data;
                    blueBall = lotteryObj.data.result.result[1].data;
                }
                catch (Exception)
                {
                    return string.Empty;
                }
    
                StringBuilder sb = new StringBuilder();
                // Get the value from JToken by convrting the JArray to int array
                int[] items = redBalls.Select(jv => (int)jv).ToArray();
    
                foreach (int item in items)
                {
                    sb.Append(item.ToString());
                    sb.Append(", ");
                }
    
                // Get the value from JToken directly
                string blueBallStr = ((int)blueBall[0]).ToString();
                sb.Append(blueBallStr);
    
                return sb.ToString(); ;
            }
    
            // Retrieve data by sending http web request
            public static string GetValueFromWeb(string Url, string CharSet)
            {
                string resultData = string.Empty;
    
                try
                {
                    // Set HttpWebRequest's header
                    HttpWebRequest wReq = (HttpWebRequest)WebRequest.Create(Url);
                    wReq.UserAgent = "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)";
                    wReq.ContentType = "application/x-www-form-urlencoded";
                    wReq.Accept = "*/*";
                    wReq.KeepAlive = true;
                    wReq.Headers.Add("Accept-Language", "zh-cn,en-us;q=0.5");
    
                    // Get and read the response
                    WebResponse wResp = wReq.GetResponse();
                    Stream respStream = wResp.GetResponseStream();
                    StreamReader reader = new StreamReader(respStream, Encoding.GetEncoding(CharSet));
    
                    resultData = reader.ReadToEnd();
    
                    return resultData;
                }
                catch
                {
                    return resultData;
                }
            }
  • 相关阅读:
    使用Springsecurity3.0 框架
    Spring3.0.2 使用全Annotation 与 Hessian 兼容配置
    Python Study PyCharm License
    Spring3.0.2 使用 Annotation 与 @Transactional 冲突问题解决方案
    「JOI 2014 Final」裁剪线
    CF700E Cool Slogans
    「JOISC 2014 Day4」两个人的星座
    ABC231H(二分图最小权边覆盖)
    JOISC 2017
    博弈论 初步
  • 原文地址:https://www.cnblogs.com/researcher/p/5005054.html
Copyright © 2020-2023  润新知