【发布时间】:2016-09-20 12:38:17
【问题描述】:
我正在使用一些数据,这些数据用于 mvc api。在这种情况下,我使用邮递员传递数据。 数据格式为原始文本。我传递给 API 的值如下,代表 EDF (http://www.edfplus.info/) 数据:
"rawdata":{
"binaryencoding":"base64","FileID":3,"ExtensionName":"edf",
"value":"gMnW5\/P5 \/Pz16+HZ087KyMbEwsHBwMDAwMHBwcLCw8PExMXFxsfHyMnJysvLy8zMy8vLysrKysnJycnJycrKysvLy8vMzMzMzc7Q0dLS0dHQzs3MysjHxcTCwL69u7m3trSysbCvra2sq6uqqqqqqqqqq6urrKysrK2tra.....QjY2SnKu7zNnb1Mi7sKehnJiWlJKRkZCQkJCRkZGSkpOTk5SUlJWVlpaXl5iYmZmampqam5qbm5ubm5ycnJ2dnp6fn6CgoaGioqGhoKCfnp6dnJybm5uampqamZmZmZiYmJeXlpaWlZWVlZSUlJOTk5KSkZGRkZGQkJCQkI+Pj4+Pj4+Pj..."
这里有一些代码。为简单起见,我将把 httppost 中的 rawdata.value 直接分配给之前创建的对象,Value 是一个字符串。
myObject.value=rawdata.value;
byte[] data=Base64.Convert.FromBase64String(myObject.value);(myobject.Value); //this gives you a 15.000 positions array.
Stream stream = new MemoryStream(data);
//the stream gets those ReadTimeOut and WriteTimeOut exceptions,after being created
StreamReader Sr=new StreamReader(stream);
char[] header=new char[256];
sr.ReadBlock(header, 0, 256);
当您检查该块时,它的所有值如下所示,带有 � 符号:
[0] = 65533 '�'
我还必须补充一点,当我检查 Stream 时,我可以通过以下错误看到流的 readtimeout 和 writetimeout 属性:System.InvalidOperationException
您知道为什么会发生此错误吗?谢谢
【问题讨论】:
-
这段代码没有意义,你能告诉我们数据应该是什么/代表什么吗?我们知道您有 something 采用 base64 编码,但那是什么?
-
我添加了更多细节,谢谢
-
那么base64编码字符串的内容实际上是文本?是这样吗?你为什么使用
.ReadBlock? How about just.ReadLine`? -
有什么不同吗?抱歉这个问题,我是新手,会不会是错误?我只需要streamreader的前256个位置,对于这种情况。
标签: c# exception stream streamreader memorystream