C#抓取网络上的数据 WebClient

重写了WebClient类,增加超时属性。

 //模拟http请求,POST相关参数至中央气象网,返回环境资料json字符串
                WebClientEx client = new WebClientEx();
                client.Timeout = 1500;
                client.Credentials = CredentialCache.DefaultCredentials;
                string url = "http://192.168.1.100/npt/forecast/aq_query";

                //string dateHour = DateTime.Now.ToString("yyyyMMddHH");
                string datastr = "areaname=&citycode=&forecasttime=" + dateHour + "&order=desc&page=1&pcode=ALN&rows=100&sort=PM25";
                byte[] bytearray = Encoding.UTF8.GetBytes(datastr);
                client.Headers.Add("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
                client.Headers.Add("ContentLength", bytearray.Length.ToString());
                //下载json数据
                Byte[] pageData = client.UploadData(url, "POST", bytearray);
                string pageHtml = Encoding.UTF8.GetString(pageData);
                ///反序列化,转成数据表
                JavaScriptSerializer jss = new JavaScriptSerializer();
                JsonClass jc = jss.Deserialize<JsonClass>(pageHtml);
                DataTable dt = CreateAQITB();
                foreach (AQIZY aqi in jc.rows)
                {
                    DataRow dr = dt.NewRow();
                    dr["jaId"] = DBNull.Value;
                    dr["StationName"] = aqi.city_name;
                    dr["StationNum"] = aqi.code;
                    dr["City"] = aqi.area_name;
                    dr["AQI"] = aqi.aqi;
                    dr["jaLevel"] = DBNull.Value;
                    dr["jaQuality"] = DBNull.Value; //aqi.aq1,优,2良,轻度污染,中度污染,重度污染
                    dr["pm2_5"] = aqi.pm25;
                    dr["pm10"] = aqi.pm10;

                    DateTime dttime = DateTime.ParseExact(aqi.forecasttime, "yyyyMMddHH", System.Globalization.CultureInfo.CurrentCulture);
                    dr["jaDate"] = dttime.ToString("yyyy-MM-dd HH:mm:ss");

                    dt.Rows.Add(dr);
                }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Free2140

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值