C#exception“此流不支持搜索操作。”对于HttpWebRequest方法“PUT”

时间:2014-04-07 23:18:58

标签: c# httpwebrequest

enter image description here我正在使用PUT方法更新一些数据。但我的下面的代码不起作用。

代码:

var schemaRequest = WebRequest.Create(new Uri(SchemaUri)) as HttpWebRequest;
schemaRequest.Method = "PUT";
schemaRequest.ContentType = "text/xml";
schemaRequest.Credentials = CredentialCache.DefaultNetworkCredentials;
schemaRequest.Proxy = WebRequest.DefaultWebProxy;
schemaRequest.AddRange(1024);

string test = "<ArrayOfUpdateNodeRequest> <UpdateNodeRequest>  <Description>vijay</Description> <Name>Publishing</Name></UpdateNodeRequest></ArrayOfUpdateNodeRequest>";

byte[] arr = new byte[1024];
arr = System.Text.Encoding.UTF8.GetBytes(test);
schemaRequest.ContentLength = arr.Length;

using (var dataStream = schemaRequest.GetRequestStream())
{
    dataStream.Write(arr, 0, arr.Length);
}

我收到异常“此流不支持搜索操作。”在GetRequestStream()。

1 个答案:

答案 0 :(得分:0)

异常非常清楚,蒸汽并不支持寻求。查看调试器中的对象并不意味着您需要寻求 - 如果您这样做,请提供示例。您应该只需写入流即可将其发送到主机。当您向主机发送流时,能够寻找是否有意义(例如,您如何在已经通过线路发送到主机的字节之前寻找回来? )。

如果你需要在本地寻找,在发送到主机之前,创建一个内存流并寻求这种方式。例如:

using (MemoryStream memoryStream new MemoryStream())
{
    // ... writes
    memoryStream.Seek(0, SeekOrigin.Begin);
    //... writes
    memoryStream.CopyTo(schemaRequest.GetRequestStream());
}