Stream不支持搜索操作

时间:2015-01-21 19:13:56

标签: c# httpwebrequest http-post

我试图发布到一个网站,其中唯一需要的参数是"描述。"我认为这与我编码数据的方式有关。我错过了什么/以错误的方式解决这个问题吗?

string postData = String.Format("description=" + description + "&");
byte[] byteArray = Encoding.UTF8.GetBytes(postData);

HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(url);
wr.Method = WebRequestMethods.Http.Post;
wr.ContentLength = byteArray.Length;
wr.ContentType = "application/x-www-form-urlencoded";

Stream postStream = wr.GetRequestStream();
postStream.Write(byteArray, 0, byteArray.Length);
postStream.Close();

WebResponse response = await wr.GetResponseAsync();
HttpWebResponse webResponse = (HttpWebResponse)response;
using (var stm = response.GetResponseStream())
{
    using (var reader = new StreamReader(stm))
    {
        var content = await reader.ReadToEndAsync();
        reader.Close();
        stm.Close();
        return content;
    }
}

1 个答案:

答案 0 :(得分:3)

您尝试阅读的信息流显然不支持搜索。您还可以通过其CanSeek属性以编程方式验证。

如果您希望在可以搜索的流中使用相同的数据,请考虑将当前流的全部内容读取到byte[]缓冲区,然后从该缓冲区构建MemoryStream以用于您的StreamReader