internal protected override void Dispose(bool disposing) { base.Dispose(disposing || false == (ResponseStream != null && ResponseStream.CanRead)); if (false == ShouldDispose) { return; } //HandleDisposing(this, ds.Dispose); if (Request != null) { Request.Abort(); Request = null; } if (ResponseStream != null) { ResponseStream.Dispose(); ResponseStream = null; } if (Response != null) { Response.Dispose(); Response = null; } }
/// <summary> /// Forces the completion and loading of the remote result. /// </summary> private string DoLoadReferenceResult(System.Net.WebResponse response, string path, PDFContextBase context) { string content = string.Empty; try { using (var stream = response.GetResponseStream()) { using (var reader = new System.IO.StreamReader(stream)) { content = reader.ReadToEnd(); } } } catch (Exception ex) { content = string.Empty; if (context.Conformance == ParserConformanceMode.Lax) { context.TraceLog.Add(TraceLevel.Error, "HTML", "Could not load link href the response from '" + path + "'", ex); } else { throw; } } finally { response.Dispose(); } return(content); }
private void button1_Click(object sender, EventArgs e) { System.Net.WebRequest r = null; try { r = System.Net.WebRequest.Create(textBox1.Text); }catch (Exception cv) { textBox2.Text = cv.Message; return; } r.ContentType = "text/xml"; //r.Headers.Add("Content-Type: application/soap+xml; charset=utf-8"); //r.Headers.Add("Content-Length: " + textBox2.Text.Length.ToString()); r.Method = "POST"; if (!String.IsNullOrWhiteSpace(textBox4.Text)) { r.Headers.Add("SOAPAction: \"" + textBox4.Text + "\""); } System.IO.Stream reqstream = r.GetRequestStream(); System.IO.StreamWriter sw = new System.IO.StreamWriter(reqstream); sw.Write(textBox2.Text); sw.Flush(); try { //r.ContentLength = textBox2.Text.Length; //reqstream.Position; System.Net.WebResponse resp = r.GetResponse(); System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream()); textBox3.Text = sr.ReadToEnd(); sr.Dispose(); resp.Dispose(); } catch (Exception ext) { textBox3.Text = ext.Message + "\r\n" + ext.StackTrace; textBox3.Text += "\r\n"; if (ext is System.Net.WebException) { System.Net.WebException webex = (System.Net.WebException)ext; try { using (System.IO.StreamReader exceptionreader = new System.IO.StreamReader(webex.Response.GetResponseStream())) { textBox3.Text += exceptionreader.ReadToEnd(); } }catch (Exception ffff) { textBox3.Text += "\r\n Unknown Error trying to read response from Server"; } } } finally { sw.Dispose(); } tabControl1.SelectedTab = tabPage2; }
/// <summary> /// 取得User Name, Email /// </summary> private async Task <(CloudStorageResult result, string userName, string userEmail)> GetUserInfoAsync() { string userName = null, userEmail = null; CloudStorageResult result = new CloudStorageResult(); try { System.Net.WebRequest request = System.Net.WebRequest.Create(UerInfoEndpoint + oauthClient.AccessToken); request.Method = "GET"; request.ContentType = "application/json"; // Get the response. System.Net.WebResponse response = await request.GetResponseAsync(); // Display the status. //Console.WriteLine(((HttpWebResponse)response).StatusDescription); // Get the stream containing content returned by the server. Stream dataStream = response.GetResponseStream(); // Open the stream using a StreamReader for easy access. StreamReader reader = new StreamReader(dataStream); // Read the content. string responseFromServer = await reader.ReadToEndAsync(); // Display the content. Console.WriteLine(responseFromServer); // Clean up the streams and the response. reader.Close(); reader.Dispose(); dataStream.Close(); dataStream.Dispose(); response.Close(); response.Dispose(); if (!string.IsNullOrEmpty(responseFromServer)) { Newtonsoft.Json.Linq.JObject jObject = Newtonsoft.Json.Linq.JObject.Parse(responseFromServer); userEmail = jObject["email"]?.ToString(); userName = jObject["name"]?.ToString(); result.Status = Status.Success; } } catch (Exception ex) { result.Message = ex.Message; } return(result, userName, userEmail); }
public IEnumerable <IFileEntry> List(string filename) { var req = CreateRequest(filename); req.Method = System.Net.WebRequestMethods.Ftp.ListDirectoryDetails; req.UseBinary = false; System.Net.WebResponse resp = null; System.IO.Stream rs = null; System.IO.StreamReader sr = null; try { HandleListExceptions( () => { var areq = new Utility.AsyncHttpRequest(req); resp = areq.GetResponse(); rs = areq.GetResponseStream(); sr = new System.IO.StreamReader(new StreamReadHelper(rs)); }, req); string line; while ((line = HandleListExceptions(() => sr.ReadLine(), req)) != null) { FileEntry f = ParseLine(line); if (f != null) { yield return(f); } } } finally { try { if (sr != null) { sr.Dispose(); } } finally { try { if (rs != null) { rs.Dispose(); } } finally { if (resp != null) { resp.Dispose(); } } } } }
/// <summary> /// 下载文件 /// </summary> /// <param name="localFilePath"></param> /// <param name="url"></param> public int DownFile(string url, int threadCount) { autoEvent.WaitOne(); //阻塞当前线程,等待通知以继续执行 //await LoadAsync(url,threadCount); string StrFileName = DownPath + name; //根据实际情况设置 string StrUrl = url; //根据实际情况设置 //打开上次下载的文件或新建文件 long lStartPos = 0; if (System.IO.File.Exists(StrFileName))//另外如果文件已经下载完毕,就不需要再断点续传了,不然请求的range 会不合法会抛出异常。 { fs = System.IO.File.OpenWrite(StrFileName); lStartPos = fs.Length; fs.Seek(lStartPos, System.IO.SeekOrigin.Current); //移动文件流中的当前指针 } else { fs = new FileStream(StrFileName, System.IO.FileMode.Create); lStartPos = 0; } //打开网络连接 try { System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(StrUrl); if (lStartPos > 0) { request.AddRange((int)lStartPos); //设置Range值 } request.Timeout = 20000; System.Net.WebResponse response = request.GetResponse(); //向服务器请求,获得服务器回应数据流 ns = response.GetResponseStream(); long totalSize = response.ContentLength; long hasDownSize = 0; byte[] nbytes = new byte[1024 * 2];//521,2048 etc int nReadSize = 0; nReadSize = ns.Read(nbytes, 0, nbytes.Length); while (nReadSize > 0) { fs.Write(nbytes, 0, nReadSize); downCount++; nReadSize = ns.Read(nbytes, 0, 1024 * 2); hasDownSize += nReadSize; } fs.Close(); ns.Close(); response.Dispose(); //CommonsCall.Compress(downStuep, StrFileName); CommonsCall.DeletePath(StrFileName); GC.Collect(); } catch (ThreadAbortException e) { Thread.Sleep(10000); DownFile(url, threadCount); } catch (Exception ex) { Thread.Sleep(10000); DownFile(url, threadCount); } finally { threadCount--; } return(threadCount); }