protected void responseCallback(IAsyncResult ar) { HttpWebRequest req = ar.AsyncState as HttpWebRequest; if (req == null) { return; } HttpWebResponse response = req.EndGetResponse(ar) as HttpWebResponse; if (response.StatusCode != HttpStatusCode.OK) { response.Close(); return; } WebReqState st = new WebReqState(); st.WebResponse = response; Stream repsonseStream = response.GetResponseStream(); st.OrginalStream = repsonseStream; repsonseStream.BeginRead(st.Buffer, 0, WebReqState.BufferSize, new AsyncCallback(readDataCallback), st); }
protected void readDataCallback(IAsyncResult ar) { WebReqState rs = ar.AsyncState as WebReqState; int read = rs.OrginalStream.EndRead(ar); if (read > 0) { rs.ms.Write(rs.Buffer, 0, read); rs.OrginalStream.BeginRead(rs.Buffer, 0, WebReqState.BufferSize, new AsyncCallback(readDataCallback), rs); } else { rs.OrginalStream.Close(); rs.WebResponse.Close(); if (OnReadDataComplected != null) { OnReadDataComplected(rs.ms.ToArray()); } } }
protected void responseCallback(IAsyncResult ar) { HttpWebRequest req = ar.AsyncState as HttpWebRequest; if (req == null) return; HttpWebResponse response = req.EndGetResponse(ar) as HttpWebResponse; if (response.StatusCode != HttpStatusCode.OK) { response.Close(); return; } WebReqState st = new WebReqState(); st.WebResponse = response; Stream repsonseStream = response.GetResponseStream(); st.OrginalStream = repsonseStream; repsonseStream.BeginRead(st.Buffer, 0, WebReqState.BufferSize, new AsyncCallback(readDataCallback), st); }