void OnResponse(IAsyncResult ar) { HttpWebRequest request = (HttpWebRequest)ar.AsyncState; HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(ar); Stream stream = response.GetResponseStream(); bool result = false; ResStatisticsAnalysisDataPacket packet = null; String[] urlParams = response.ResponseUri.Segments; if (urlParams.Length < 2) { return; } String shortcode = urlParams[urlParams.Length - 1]; String markt = urlParams[urlParams.Length - 2]; String emcode = String.Format(@"{0}.{1}", shortcode.Substring(0, shortcode.Length - 4), markt.Substring(0, markt.Length - 1).ToUpper()); if (!DetailData.EmCodeToUnicode.ContainsKey(emcode)) { return; } if (stream != null) { using (BinaryReader br = new BinaryReader(stream)) { packet = new ResStatisticsAnalysisDataPacket(); packet.RequestType = FuncTypeRealTime.StatisticsAnalysis; result = packet.Decoding(br); packet.Code = DetailData.EmCodeToUnicode[emcode]; } stream.Dispose(); } if (result) { if (DoCMReceiveData != null) //通知界面而已,对于数据的响应在这个类中完成。 { DoCMReceiveData(this, new CMRecvDataEventArgs(TcpService.SSHQ, packet, 0)); } } }
/// <summary> /// 统计明细 /// </summary> /// <param name="dataPacket"></param> private void SetStatisticsAnalysisData(ResStatisticsAnalysisDataPacket dataPacket) { _allStatisticsAnalysisDataRec[dataPacket.Code] = dataPacket.StatisticsData; }