public static HttpResponse DoHttpWebRequest(HttpWebRequest request, byte[] data) { request.UserAgent = HttpUtils.elmcity_user_agent; try { //request.ContentLength = 0; if (data != null && data.Length > 0) { request.ContentLength = data.Length; var bw = new BinaryWriter(request.GetRequestStream()); bw.Write(data); bw.Flush(); bw.Close(); } } catch (Exception ex_write) { GenUtils.PriorityLogMsg("exception", "DoHttpWebRequest: writing data", ex_write.Message + ex_write.InnerException.Message + ex_write.StackTrace); throw (ex_write); } try { var response = (HttpWebResponse)request.GetResponse2(); var status = response.StatusCode; string message = response.StatusDescription; var headers = new Dictionary<string, string>(); foreach (string key in response.Headers.Keys) headers[key] = response.Headers[key]; byte[] return_data = GetResponseData(response); response.Close(); return new HttpResponse(status, message, return_data, headers); } catch (Exception ex_read) { GenUtils.PriorityLogMsg("exception", "DoHttpWebRequest: reading data", ex_read.Message + ex_read.InnerException.Message + ex_read.StackTrace); throw (ex_read); } }