private Readable SendRequest(Writeable payload) { // build the request header PlayerRqst request = CreateHeader(payload); // build request data MemoryStream requestStream = new MemoryStream(); XmlDataWriter requestWriter = new XmlDataWriter(requestStream); requestWriter.WriteObject(request.GetType().Name, request); requestWriter.Flush(); if (Logger.Enabled) { Logger.LogInfo(this, "SendRequest", String.Format("Request: {0}", Encoding.UTF8.GetString(requestStream.ToArray()))); } // send request MemoryStream responseStream = SendRequestViaHttp(requestStream); if (Logger.Enabled) { Logger.LogInfo(this, "SendRequest", String.Format("Response: {0}", Encoding.UTF8.GetString(responseStream.ToArray()))); } // read response XmlDataReader responseReader = new XmlDataReader(responseStream); PlayerResp response = (PlayerResp)responseReader.ReadObject("PlayerResp", PlayerResp.CtorDataReader); // parse response header return(ParseHeader(response)); }
private Readable ParseHeader(PlayerResp response) { fStatusCode = response.StatusCode; fStatusMessage = response.StatusMessage; if (fStatusCode == StatusCode.sc_InvalidSession) { fResetNeeded = true; } if (response.ResponseData == null) { if (fStatusCode == StatusCode.sc_Success) { fStatusCode = StatusCode.sc_GeneralError; } return(null); } return(response.ResponseData.Response); }