Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 内存流复制错误_C#_Stream_Httpwebrequest_Memorystream - Fatal编程技术网

C# 内存流复制错误

C# 内存流复制错误,c#,stream,httpwebrequest,memorystream,C#,Stream,Httpwebrequest,Memorystream,将数据从MemoryStream复制到请求流时出现问题 var Request = (HttpWebRequest.Create(Url) as HttpWebRequest); Request.Method = "PUT"; Stream RequestStream = Request.GetRequestStream(); // write to MemoryStream var MemStream = new MemoryStream(); byte[] Test = Encoding.

将数据从MemoryStream复制到请求流时出现问题

var Request = (HttpWebRequest.Create(Url) as HttpWebRequest);
Request.Method = "PUT";
Stream RequestStream = Request.GetRequestStream();

// write to MemoryStream
var MemStream = new MemoryStream();
byte[] Test = Encoding.ASCII.GetBytes("test000\r\n");
MemStream.Write(Test, 0, Test.Length);

// test writing correctly
byte[] B = MemStream.ToArray();
System.Windows.Forms.MessageBox.Show(Encoding.ASCII.GetString(B)); // shows data correctly

// copy data to request stream(not working!)
MemStream.CopyTo(RequestStream);

// add new data to request stream(working)
byte[] Test1 = Encoding.ASCII.GetBytes("test111");
RequestStream.Write(Test1, 0, Test1.Length);

仅发送到服务器“test111”。有什么想法吗?

复制以从当前位置复制数据。所以它无法复制,因为位置在末尾。其中as
ToArray
返回所有数据,与位置无关

复制从当前流中的当前位置开始,复制操作完成后不会重置目标流的位置

试试这个

MemStream.Position = 0;
MemStream.CopyTo(RequestStream);

有关更多信息,请参阅复制以从当前位置复制数据。所以它无法复制,因为位置在末尾。其中as
ToArray
返回所有数据,与位置无关

复制从当前流中的当前位置开始,复制操作完成后不会重置目标流的位置

试试这个

MemStream.Position = 0;
MemStream.CopyTo(RequestStream);

有关更多信息,请参阅

memstream的位置在末尾。因为
MemStream.Write(Test,0,Test.Length)

使用:


memstream的位置在末尾。因为
MemStream.Write(Test,0,Test.Length)

使用:


将MemoryStream对象位置设置为0并使用CopyTo方法

MemStream.Position=0;
MemStream.CopyTo(RequestStream)

设置MemoryStream对象位置=0并使用CopyTo方法

MemStream.Position=0;
MemStream.CopyTo(RequestStream)

@user2058005谢谢,我知道如何接受答案。但不到10分钟,就不可能了accepted@user2058005谢谢,我知道如何接受答案。但不足10分钟,不能接受