我正在使用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()。
答案 0 :(得分:0)
异常非常清楚,蒸汽并不支持寻求。查看调试器中的对象并不意味着您需要寻求 - 如果您这样做,请提供示例。您应该只需写入流即可将其发送到主机。当您向主机发送流时,能够寻找是否有意义(例如,您如何在已经通过线路发送到主机的字节之前寻找回来? )。
如果你需要在本地寻找,在发送到主机之前,创建一个内存流并寻求这种方式。例如:
using (MemoryStream memoryStream new MemoryStream())
{
// ... writes
memoryStream.Seek(0, SeekOrigin.Begin);
//... writes
memoryStream.CopyTo(schemaRequest.GetRequestStream());
}