首页 新闻 会员 周边 捐助

“Stream.Length”引发了“System.NotSupportedException”类型的异常

0
悬赏园豆:80 [待解决问题]

在用post 提交数据时,数据量比较大的时候,会出现 “Stream.Length”引发了“System.NotSupportedException”类型的异常

不知道怎么处理?

代码如下:

 

 public static string VoteOnce(string url, string PostStr)
        {
            //创建HttpWebRequest发送请求用
            HttpWebRequest hwrq = (HttpWebRequest)WebRequest.Create(url);
            //下面是相关数据头和数据发送方法
            hwrq.Accept = "application/x-shockwave-flash, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
            hwrq.Referer = url;
            hwrq.ContentType = "application/x-www-form-urlencoded";
            hwrq.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; MAXTHON 2.0)";
            hwrq.KeepAlive = true;
            hwrq.Method = "POST";
   

            UTF8Encoding utf8 = new UTF8Encoding();
            byte[] bytePost = utf8.GetBytes(PostStr);
            hwrq.ContentLength = bytePost.Length;

            //下面是发送数据的字节流
            Stream MyStream = hwrq.GetRequestStream();
            MyStream.Write(bytePost, 0, bytePost.Length);
            MyStream.Close();//记得要结束字节流啊

            HttpWebResponse hwrp = (HttpWebResponse)hwrq.GetResponse();
            StreamReader MyStreamR = new StreamReader(hwrp.GetResponseStream(), Encoding.Default);
            string result = MyStreamR.ReadToEnd();
            MyStreamR.Close();

            return result;
        }
2839018的主页 2839018 | 初学一级 | 园豆:61
提问于:2012-11-30 19:48
< >
分享
所有回答(10)
0

在哪一句报的错?

az235 | 园豆:8483 (大侠五级) | 2012-11-30 23:18

代码本身可以顺利的进行,不会报错。但是在服务器端接收数据时确只能接收一点点。

调试时,会发现  

HttpWebResponse hwrp = (HttpWebResponse)hwrq.GetResponse();

这段代码有异常

 

“Stream.Length”引发了“System.NotSupportedException”类型的异常

支持(0) 反对(0) 2839018 | 园豆:61 (初学一级) | 2012-12-01 22:47

@2839018: 把

hwrq.Accept = "application/x-shockwave-flash, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
hwrq.ContentType = "application/x-www-form-urlencoded";
            hwrq.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; MAXTHON 2.0)";
这几句代码注释掉看看
支持(0) 反对(0) az235 | 园豆:8483 (大侠五级) | 2012-12-02 09:22
0

我觉得你可以先用form,post提交找找看是不是接口代码有问题

<form action="url" metod="post">

  <input type="text" value="参数1"/>

  <input type="text" value="参数2"/>

  <input type="sumbit" value="提交"/>

</form>

Rich.T | 园豆:3440 (老鸟四级) | 2012-12-01 09:32

接口代码,没有问题的,我用火车采集器,接收数据时测试过,一点问题都没有!

支持(0) 反对(0) 2839018 | 园豆:61 (初学一级) | 2012-12-01 22:44
0

ASP.NET 默认POST 提交数据最大是4M。 既然你也知道 数据量比较大的时候 会出现这个问题,那就分几次提交数据。

geass.. | 园豆:1821 (小虾三级) | 2012-12-01 16:30

数据远远,没有达到4M,只有16K左右,好像PostStr长度,只能是255个字符,超过了后,只能提交前面255个字符

支持(0) 反对(0) 2839018 | 园豆:61 (初学一级) | 2012-12-01 22:49

@2839018: 255个字符是get方式的限制。是你代码的问题,我以前的上传组件用 HttpWebRequest POST 方式分块提交数据,一次提交4M数据都没问题。

支持(0) 反对(0) geass.. | 园豆:1821 (小虾三级) | 2012-12-02 08:17
0

楼主,我也遇到同样的问题,跪求解决方法。。。。。。。。

AAABONE | 园豆:208 (菜鸟二级) | 2015-08-15 11:27
0

至今未能解决,大神快出现

dzguang | 园豆:202 (菜鸟二级) | 2015-08-18 22:07
0

我也遇到了,大神在哪儿啊

$我们都是好孩子$ | 园豆:202 (菜鸟二级) | 2016-07-07 11:14
0

我也是啊。。急求大神解啊

wendypangr | 园豆:202 (菜鸟二级) | 2016-07-25 10:16
0

我也遇到了,大神在哪里

路酱 | 园豆:202 (菜鸟二级) | 2018-11-02 14:37
0

到现在还没人解决吗?

Regina_小伊 | 园豆:202 (菜鸟二级) | 2019-04-29 17:05
0

郁闷,没看到解决方案

乐天开门 | 园豆:202 (菜鸟二级) | 2022-08-25 16:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册