private void GetResponseCallback(IAsyncResult ar) { TransportClass oTransportClass = ar.AsyncState as TransportClass; try { HttpWebResponse response = (HttpWebResponse)oTransportClass.m_oWebRequest.EndGetResponse(ar); Int64 ContentLength = 0; if (!Int64.TryParse(response.Headers.Get("Content-Length"), out ContentLength)) { ContentLength = 0; } if (m_nMaxSize > 0 && ContentLength > m_nMaxSize) { _log.ErrorFormat("Downloaded object size {0} exceed max {1}", ContentLength, m_nMaxSize); oTransportClass.m_eError = ErrorTypes.WebRequest; ClearAndCallback(oTransportClass); } else { Stream streamResponse = response.GetResponseStream(); AsyncContextReadOperation oAsyncContextReadOperation = new AsyncContextReadOperation(m_nMaxSize); oTransportClass.m_oHttpWebResponse = response; oTransportClass.m_oStream = streamResponse; oTransportClass.m_oAsyncContextReadOperation = oAsyncContextReadOperation; oAsyncContextReadOperation.ReadContextBegin(streamResponse, ReadContextCallback, oTransportClass); } } catch (Exception e) { _log.Error("Exception catched in GetRequestStreamCallback:", e); oTransportClass.m_eError = ErrorTypes.WebRequest; ClearAndCallback(oTransportClass, true); } }
public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) { bool bStartAsync = false; ErrorTypes eError = ErrorTypes.Unknown; try { _log.Info("Starting process request..."); _log.Info(context.Request.QueryString.ToString()); string vKey = context.Request.QueryString["vkey"]; string sKey = context.Request.QueryString["key"]; if (null != sKey && false == string.IsNullOrEmpty(sKey)) { eError = ErrorTypes.NoError; if (ErrorTypes.NoError == eError) { bStartAsync = true; Storage oStorage = new Storage(); string sTempKey = "temp_" + sKey; string sFilename = sKey + ".tmp"; string sPath = sTempKey + "/" + sFilename; AsyncContextReadOperation asynch = new AsyncContextReadOperation(); TransportClass oTransportClass = new TransportClass(context, cb, oStorage, asynch, sPath, sTempKey, sFilename); asynch.ReadContextBegin(context.Request.InputStream, ReadContextCallback, oTransportClass); } } } catch(Exception e) { eError = ErrorTypes.Unknown; _log.Error(context.Request.QueryString.ToString()); _log.Error("Exeption: ", e); } finally { if (ErrorTypes.NoError != eError) writeXml(context, null, null, null, eError); } TransportClass oTempTransportClass = new TransportClass(context, cb, null, null, null, null, null); if (false == bStartAsync) cb(new AsyncOperationData(oTempTransportClass)); return new AsyncOperationData(oTempTransportClass); }
public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) { TransportClassMainAshx oTransportClassMainAshx = new TransportClassMainAshx(context, cb); AsyncContextReadOperation asynch = new AsyncContextReadOperation(); TransportClassContextRead oTransportClassContextRead = new TransportClassContextRead(oTransportClassMainAshx, asynch); try { asynch.ReadContextBegin(context.Request.InputStream, ReadContext, oTransportClassContextRead); } catch(Exception e) { OutputCommand oOutputCommand = new OutputCommand(ErrorTypes.Unknown); WriteOutputCommand(new TransportClassMainAshx(context, cb), oOutputCommand); _log.Error("Exception catched in BeginProcessRequest:", e); } return new AsyncOperationData(extraData); }
private void GetMediaXmlCallbackProcess(TransportClass1 oTransportClass1, Dictionary<string, string> aMediaXmlMapHash, Dictionary<string, string> aMediaXmlMapFilename) { AsyncContextReadOperation oAsyncContextReadOperation = new AsyncContextReadOperation(); TransportClass2 oTransportClass2 = new TransportClass2(oTransportClass1, aMediaXmlMapHash, aMediaXmlMapFilename, oAsyncContextReadOperation); HttpPostedFile oCurrentFile = (HttpPostedFile)oTransportClass1.m_oFiles[(string)oTransportClass1.m_oFilesEnumerator.Current]; oCurrentFile.InputStream.Position = 0; oAsyncContextReadOperation.ReadContextBegin(oCurrentFile.InputStream, ReadContextCallback, oTransportClass2); }
private void GetResponseCallback(IAsyncResult ar) { TransportClass oTransportClass = ar.AsyncState as TransportClass; try { HttpWebResponse response = (HttpWebResponse)oTransportClass.m_oWebRequest.EndGetResponse(ar); Int64 ContentLength = 0; if (!Int64.TryParse(response.Headers.Get("Content-Length"), out ContentLength)) ContentLength = 0; if (m_nMaxSize > 0 && ContentLength > m_nMaxSize) { _log.ErrorFormat("Downloaded object size {0} exceed max {1}", ContentLength, m_nMaxSize); oTransportClass.m_eError = ErrorTypes.WebRequest; ClearAndCallback(oTransportClass); } else { Stream streamResponse = response.GetResponseStream(); AsyncContextReadOperation oAsyncContextReadOperation = new AsyncContextReadOperation(m_nMaxSize); oTransportClass.m_oHttpWebResponse = response; oTransportClass.m_oStream = streamResponse; oTransportClass.m_oAsyncContextReadOperation = oAsyncContextReadOperation; oAsyncContextReadOperation.ReadContextBegin(streamResponse, ReadContextCallback, oTransportClass); } } catch (Exception e) { _log.Error("Exception catched in GetRequestStreamCallback:", e); oTransportClass.m_eError = ErrorTypes.WebRequest; ClearAndCallback(oTransportClass, true); } }