private string RunHttp(string action,params string[] paraStrArr) { MyHttpUtility http = new MyHttpUtility (); string content = "action=" + action + "&dataArrStr="; if (paraStrArr != null) { foreach (string str in paraStrArr) { content += System.Web.HttpUtility.UrlEncode (str) + ","; } content = content.Substring (0, content.Length - 1); } try { return http.DoPost (evalActionUrl, encryption.EncryptData (content)); } catch (Exception ex) { onError ("DoPost exception:"+ content +" ,", ex); return null; } }
public JsonResult SyncHolday() { JsonMessage jm = new JsonMessage(); MyHttpUtility http = new MyHttpUtility(); DateTime queryTime = DateTime.Today; DateTime maxTime = DateTime.Today.AddMonths(1); while (queryTime < maxTime) { int tryCount = 10; while (true) { try { using (DBContext context = new DBContext()) { string queryDate = queryTime.ToString("yyyy-MM-dd"); string timeJson = http.DoGet("http://www.easybots.cn/api/holiday.php?d=" + queryDate); if (string.IsNullOrEmpty(timeJson)) throw new Exception("节假日返回值为空"); string[] tempArr = timeJson.Substring(1, timeJson.Length - 2).Split(':'); if (tempArr.Length != 2) throw new Exception("节假日返回值有变动"); int val = Convert.ToInt32(tempArr[1].Replace('\"', ' ').Trim()); //写到数据为 string sql = "update Holiday set isHoliday=" + val + " where day = '" + queryDate + "'"; int cc = context.ExecuteCommand(sql); if (cc == 0) { sql = "insert into Holiday(day,isHoliday) values('" + queryDate + "'," + val + " )"; context.ExecuteCommand(sql); } } break; } catch (System.Net.WebException ex) { tryCount--; if (tryCount < 0) { jm.LogException(ex); break; } LogError("使用网络节假日发生网络异常,重试" + tryCount, ex); } catch (Exception ex) { jm.LogException(ex); } break; } queryTime = queryTime.AddDays(1); } return Json(jm, JsonRequestBehavior.AllowGet); }
public void MonitorBankResult(object obj) { if (systemExit) return; string[] arr = obj as string[]; string batchCurrnum = arr [0]; string batchDate = arr [1]; string[] terminals = arr[2].ToString().Split(); MyHttpUtility http = new MyHttpUtility(); bool isFinish = false; while (!(isFinish ||systemExit)) { try { string json = RunHttp ("Home.GetRongBao", batchCurrnum, batchDate); JsonMessage<QueryResult> resultJson = Newtonsoft.Json.JsonConvert.DeserializeObject<JsonMessage<QueryResult>> (json); if (!string.IsNullOrEmpty (resultJson.Message)) { this.BeginInvoke (new delegateTwoParam (SetBankLog), batchCurrnum, "查询银行处理结果失败:" + resultJson.Message); } else { string statusText = ""; switch (resultJson.Result.batchStatus) { case 0: statusText = "待确认"; break; case 1: statusText = "待审核"; break; case 2: statusText = "商户审核拒绝"; isFinish = true; break; case 3: statusText = "处理中"; break; case 4: isFinish = true; statusText = "交易完毕"; break; } this.BeginInvoke (new delegateTwoParam (SetBankLog), batchCurrnum, "银行处理结果为:" + statusText); if (isFinish) { this.BeginInvoke (new QueryBankFinish (onBankFinish), resultJson.Result); this.BeginInvoke (new delegateOnParam (AppendSumLog), batchCurrnum + "监听完成"); return; }else{ System.Threading.Thread.Sleep (30000); } } } catch (Exception ex) { if(!systemExit) onError ("查询银行处理", ex, true); } } }