public static HttpFile GetFileUsePost(string url, HttpData data , string accept = null, string userAgent = null, int timeout = 100 , bool useCert = false, string certFile = null, string certPassword = null , CookieContainer cookieContainer = null, ICredentials credentials = null, IWebProxy proxy = null , Dictionary <string, string> otherHeader = null) { HttpFile result = new HttpFile(); var reqAndResp = new HttpWebReqAndResp(); try { reqAndResp = CreatePostHttpResponse(url, data, accept, userAgent, timeout, useCert, certFile, certPassword, cookieContainer, credentials, proxy, otherHeader); if (reqAndResp != null && reqAndResp.request != null && reqAndResp.response != null && reqAndResp.response.StatusCode == HttpStatusCode.OK && reqAndResp.response.ContentLength > 0 && (reqAndResp.response.ContentType.StartsWith("image", StringComparison.OrdinalIgnoreCase) || reqAndResp.response.ContentType.StartsWith("audio", StringComparison.OrdinalIgnoreCase) || reqAndResp.response.ContentType.StartsWith("video", StringComparison.OrdinalIgnoreCase) || reqAndResp.response.ContentType.StartsWith("application/octet-stream", StringComparison.OrdinalIgnoreCase))) { result.ContentType = reqAndResp.response.ContentType; result.FileName = Guid.NewGuid().ToString("N") + FileHelper.GetExtension(result.ContentType); using (var responseStream = reqAndResp.response.GetResponseStream()) { using (var ms = new MemoryStream()) { responseStream.CopyTo(ms); result.FileData = ms.ToArray(); } //using (var br = new BinaryReader(responseStream)) //{ // result.FileData = br.ReadBytes((int)br.BaseStream.Length); //} } } } finally { if (reqAndResp != null) { if (reqAndResp.response != null) { reqAndResp.response.Close(); reqAndResp.response = null; } if (reqAndResp.request != null) { reqAndResp.request.Abort(); reqAndResp.request = null; } reqAndResp = null; } } return(result); }
public static string GetTextUsePost(string url, HttpData data , string accept = null, string userAgent = null, int timeout = 100 , bool useCert = false, string certFile = null, string certPassword = null , CookieContainer cookieContainer = null, ICredentials credentials = null, IWebProxy proxy = null , Dictionary <string, string> otherHeader = null) { var result = string.Empty; var reqAndResp = new HttpWebReqAndResp(); try { reqAndResp = CreatePostHttpResponse(url, data, accept, userAgent, timeout, useCert, certFile, certPassword, cookieContainer, credentials, proxy, otherHeader); if (reqAndResp != null && reqAndResp.request != null && reqAndResp.response != null && reqAndResp.response.StatusCode == HttpStatusCode.OK && reqAndResp.response.ContentLength > 0 && (reqAndResp.response.ContentType.StartsWith("text", StringComparison.OrdinalIgnoreCase) || reqAndResp.response.ContentType.StartsWith("application/json", StringComparison.OrdinalIgnoreCase) || reqAndResp.response.ContentType.StartsWith("application/xml", StringComparison.OrdinalIgnoreCase))) { var encode = Encoding.UTF8; if (!string.IsNullOrEmpty(reqAndResp.response.CharacterSet)) { encode = Encoding.GetEncoding(reqAndResp.response.CharacterSet); } using (var responseStream = reqAndResp.response.GetResponseStream()) { using (var sr = new StreamReader(responseStream, encode)) { result = sr.ReadToEnd(); } } } } finally { if (reqAndResp != null) { if (reqAndResp.response != null) { reqAndResp.response.Close(); reqAndResp.response = null; } if (reqAndResp.request != null) { reqAndResp.request.Abort(); reqAndResp.request = null; } reqAndResp = null; } } return(result); }