コード例 #1
0
        public String PostRequest(Iso8583Request req)
        {
            byte[] reqMsg = null;
            if (req.RequestString != null)
            {
                String sReq = req.RequestString.Trim();
                if (String.IsNullOrEmpty(sReq))
                {
                    throw new HttpResponseException(HttpStatusCode.NoContent);
                }
                System.Text.RegularExpressions.Regex ws = new System.Text.RegularExpressions.Regex(@"\s+");
                sReq   = ws.Replace(sReq, "");
                reqMsg = MessageUtility.StringToHex(sReq, true);
                if (reqMsg == null)
                {
                    //throw new HttpResponseException(HttpStatusCode.InternalServerError);
                    _outputData = "Error: Invalid request message string (not valid hexadecimal)";
                }
            }

            try
            {
                MessageClient client = new MessageClient(req.ServerHost, req.ServerPort, null, this.PrintModel);
                client.IsSslEnabled = req.IsSSL;

                if (req.RequestString != null)
                {
                    if (reqMsg != null)
                    {
                        client.SendBytes(reqMsg);
                    }
                }
                else
                {
                    client.Model = HttpContext.Current.Session != null ? HttpContext.Current.Session["model"] : null;
                    if (client.Model != null)
                    {
                        _iso8583ResponseEvent.Reset();
                        client.SendModel();
                        _iso8583ResponseEvent.WaitOne();
                    }
                    else
                    {
                        _outputData = "Error: Invalid request message (cannot be null value)";
                    }
                }
            }
            catch
            {
                //throw new HttpResponseException(HttpStatusCode.InternalServerError);
                _outputData = "Error: Cannot send request message to ISO 8583 server.";
            }

            if (_outputData.IndexOf("Error: ") == 0)
            {
                Logger.GetInstance().WriteLine(_outputData);
            }

            return(_outputData);
        }