static public void AsynPost(string url, byte[] data, ResponseCallback callback, object state, CookieCollection cookie) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); if (cookie != null) { request.CookieContainer = new CookieContainer(); request.CookieContainer.Add(cookie); } request.AllowAutoRedirect = true; request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = data.Length; AsynResp resp = new AsynResp { Request = request, Callback = callback, Response = new ResponseObject { State = state } }; AsynRequestStream ars = new AsynRequestStream { Data = data, Resp = resp }; request.BeginGetRequestStream(new AsyncCallback(RequestStreamCallback), ars); }
private static void RequestStreamCallback(IAsyncResult ir) { AsynRequestStream rs = (AsynRequestStream)ir.AsyncState; try { Stream requestStream = rs.Resp.Request.EndGetRequestStream(ir); requestStream.Write(rs.Data, 0, rs.Data.Length); requestStream.Close(); rs.Data = null; rs.Resp.Request.BeginGetResponse(RespCallback, rs.Resp); } catch (Exception) { DoUserCallback(rs.Resp); } }
private static void RequestStreamCallback(IAsyncResult ir) { AsynRequestStream rs = (AsynRequestStream)ir.AsyncState; try { Stream requestStream = rs.Resp.Request.EndGetRequestStream(ir); requestStream.Write(rs.Data, 0, rs.Data.Length); requestStream.Close(); rs.Data = null; rs.Resp.Request.BeginGetResponse(new AsyncCallback(RespCallback), rs.Resp); } catch (Exception e) { // LogHelper.WriteLog(typeof(HttpWebAsk), LogStatusLevel.ERROR, e.Message); DoUserCallback(rs.Resp); } }