HttpWebRequest被取消了
我正在使用ASP.NET来读取Request.InputStream并将HttpRequest发送给发送给我的页面抛出一个QueryString参数,我正确读取了Request.InputStream并正确地生成了HttpRequest,但是在我的Request.InputStream中我找到像这样的“Porsvägen”这样的特殊字符我得到了这个错误:ystem.Net.WebException:请求被中止:请求被取消了。 —> System.IO.IOException:在写入所有字节之前无法关闭流。 在System.Net.ConnectStream.CloseInternal(Boolean internalCall,Boolean aborting)
我获取Request.InputStream的代码是这样的:
string requestData = (new StreamReader(Request.InputStream)).ReadToEnd();
我制作HttpRequest并发送它的代码是这样的:
webRequest = (HttpWebRequest)WebRequest.Create(new Uri(urlDestination)); webRequest.Method = "POST"; webRequest.ContentType = "application/x-www-form-urlencoded"; webRequest.ContentLength = requestData.Length; writer = new StreamWriter(webRequest.GetRequestStream()); writer.Write(requestData, 0, requestData.Length);//<-------Here I get the ERROR if (writer != null) { writer.Close(); }
你能否告诉我我的代码有什么问题,因为它有效,但对于特殊字符,它会崩溃。
我已经设法通过实现这个来克服错误:
string requestData = (new StreamReader(Request.InputStream)).ReadToEnd(); byte[] bytes = Request.ContentEncoding.GetBytes(requestData); Stream writer = webRequest.GetRequestStream(); writer.Write(bytes, 0, bytes.Length);
我使用Stream编写HttpWebRequest
而不是StreamWriter
并使用ContentEncoding
读取InputStream
的字节数
- 什么是Microsoft.Practices.EnterpriseLibrary.Data
- 如何以编程方式在ASP.NET 4.0 GridView上启用分页和排序?
- 如何减少Recaptcha难度?
- 在ASPX页面上将“太多参数传递给”存储过程
- 在3层架构中使用BAL?如何从DAL调用方法到BAL
- 使用Asp.Net Core 2.0中的AllowHtml从数据库生成网页
- asp.net core 2.0中System.Web.Hosting.HostingEnvironment.RegisterObject的替代方案
- IPostbackEventHandler VS IPostbackDataHandler
- 将Windows时区转换为moment.js时区?