最近在老家出差,老家电网改革,使用了智能电表,把老式电表全部换了还给了一个客户号,终于也可以在支付宝什么的交电费了,但我们那里支付宝还不能查询剩余多少钱,这让人很恼火,于是就来国家电网http://www.95598.cn/person/index.shtml 查询了一下,发现需 ...
最近在老家出差,老家电网改革,使用了智能电表,把老式电表全部换了还给了一个客户号,
终于也可以在支付宝什么的交电费了,但我们那里支付宝还不能查询剩余多少钱,这让人很恼火,
于是就来国家电网http://www.95598.cn/person/index.shtml 查询了一下,发现需要客户号、查询密码、验证码,客户号我知道,查询密码是不知道的,随便输入,提示错误,
于是打95598问了下客服,得知了默认密码是6个8,查询了一下,出来消息了,但想每次都上电脑上查,貌似有点不方便,就想自己做一个模拟提交的,
模拟提交就要解决验证码识别的问题,看看也不复杂,就捣鼓了一会,然后分析提交的信息及url,
然后看到一个http://www.95598.cn/95598/per/shortCut/getShortCutAccount 这个地址,只传了2个参数,一个客户号,还有一个不知道是什么,
就直接测试了下这个url,post提交了两个参数,然后居然信息直接出来了,
还是josn格式。。。客户名称、电表地址、电表号,余额、违约金、欠费信息,还有部分类型的客户居然还带近期的电费记录,
到这我就想问特么你之前验证的查询密码和验证码了 干什么用的? 只是个慌子吗?我书都的少,你别骗我,這么大一个国家电网,居然这个查询密码是个渣?
好吧 代码我也上上来吧,但没什么技术含量了
/// <summary> /// 获取电费 /// </summary> /// <param name="consNo">客户号</param> /// <returns></returns> public static void GetPowerRate<T>(T consNo) { HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create("http://www.95598.cn/95598/per/shortCut/getShortCutAccount"); httpWebRequest.ContentType = "application/x-www-form-urlencoded; charset=UTF-8"; httpWebRequest.Method = "POST"; var data = System.Text.Encoding.UTF8.GetBytes(string.Format("consNo={0}&orgNo=43101", consNo)); using (Stream stream = httpWebRequest.GetRequestStream()) { stream.Write(data, 0, data.Length); stream.Close(); } data = null; Result result = new Result(); try { HttpWebResponse webResponse = httpWebRequest.GetResponse() as HttpWebResponse; using (System.IO.StreamReader stream = new StreamReader(webResponse.GetResponseStream())) { result = Newtonsoft.Json.JsonConvert.DeserializeObject<Result>(stream.ReadToEnd()); } httpWebRequest = null; webResponse.Close(); webResponse = null; } catch { } result.billInfo.consNo = consNo.ToString(); Write(result); }
原标题:国家电网电费查询
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。