Che*_*Trt 0 c# http-post filestream
我面临一个错误,即“流不支持阅读”。我正在向 url 发出 Http post 请求。下面是我正在使用的代码
var request = (HttpWebRequest) WebRequest.Create("https://test.com/Hotel Hospitality Source?method=fetchInfo");
var postData = "&username=testing";
postData += "&password=Testing";
postData += "&hotelId=h075-103";
var data = Encoding.ASCII.GetBytes(postData);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
using(var ms = new MemoryStream())
request.GetRequestStream().CopyTo(ms);
var response = (HttpWebResponse) request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
Run Code Online (Sandbox Code Playgroud)
首先我使用了下面的代码。
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
Run Code Online (Sandbox Code Playgroud)

当我使用 CopyTo 方法进行流时出现错误。我该如何解决这个错误?
什么是using (var ms=new MemoryStream()) request.GetRequestStream().CopyTo(ms);应该做的?您正在尝试将请求流(它是只写的)复制到您然后处置的新内存流中。
您需要写入请求流:
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
Run Code Online (Sandbox Code Playgroud)