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的字节数