在ASP.NET中关于分块传输编码的HTTP请求的阅读体

在ASP.NET中关于分块传输编码的HTTP请求的阅读体

Reading Body on chunked transfer encoded http requests in ASP.NET

J2ME客户端正在发送带有分块传输编码的HTTP POST请求。

当ASP.NET(同时在IIS6和WebDev.exe.server中)尝试读取请求时,它将Content-Length设置为0。我猜这是可以的,因为在加载请求时,Content-length是未知的。

但是,当我读到最后的Request.InputStream时,它返回0。

这是我用来读取输入流的代码。

1
2
3
4
5
using (var reader = new StreamReader(httpRequestBodyStream, BodyTextEncoding)) {
    string readString = reader.ReadToEnd();
    Console.WriteLine("CharSize:" + readString.Length);
    return BodyTextEncoding.GetBytes(readString);
}

我可以使用Fiddler模??拟客户的行为,例如

网址
http:// localhost:15148 / page.aspx

标头:
用户代理:提琴手
传输编码:分块
主持人:somesite.com:15148

身体
兔子兔子兔子。感谢您的光临,它非常有用!

我的身体阅读器从上面返回一个长度为零的字节数组。

有谁知道如何在IIS和ASP.NET开发服务器(cassini)上启用分块编码?

我发现该脚本适用于IIS,但无法正常工作。


似乎是官方的:Cassini不支持Transfer-Encoding: chunked请求。

By default, the client sends large
binary streams by using a chunked HTTP
Transfer-Encoding. Because the ASP.NET
Development Server does not support
this kind of encoding, you cannot use
this Web server to host a streaming
data service that must accept large
binary streams.


该url不再起作用,因此很难直接对其进行测试。 我想知道这是否行得通,谷歌在bytes.com上找到了一个有经验的人。 如果您再次建立您的网站,我可以看看这是否真的可行。

Joerg Jooss写道:(为简洁起见略作修改)

1
2
3
4
5
6
7
8
9
10
11
12
13
string responseText = null;
WebRequest rabbits= WebRequest.Create(uri);
using (Stream resp = rabbits.GetResponse().GetResponseStream()) {
    MemoryStream memoryStream = new MemoryStream(0x10000);
    byte[] buffer = new byte[0x1000];
    int bytes;
    while ((bytes = resp.Read(buffer, 0, buffer.Length)) > 0) {
        memoryStream.Write(buffer, 0, bytes);
    }
    // use the encoding to match the data source.
    Encoding enc = Encoding.UTF8;
    reponseText = enc.GetString(memoryStream.ToArray());
}


推荐阅读

    linux转发请求命令?

    linux转发请求命令?,系统,工作,密码,网络,服务,信息,工具,项目,状态,标准,关

    linux模拟请求命令?

    linux模拟请求命令?,地址,工作,系统,工具,信息,标准,命令,目录,发行,数据,lin

    linux命令测试客户端?

    linux命令测试客户端?,地址,系统,网络,工具,工作,分析,环境,命令,下行,资料,l

    linux命令看文件编码?

    linux命令看文件编码?,状态,系统,文件,工具,名称,数据,命令,格式,汉字,以下,L

    linux命令改变编码?

    linux命令改变编码?,系统,文件,工作,代码,工具,命令,字符集,格式,以下,方式,l

    修改linux编码命令?

    修改linux编码命令?,系统,文件,命令,情况,标准,工作,格式,字符集,以下,方式,l

    linux下如何传输命令?

    linux下如何传输命令?,地址,密码,服务,系统,工作,项目,代理,认证,单位,软件,l

    安卓linux命令客户端?

    安卓linux命令客户端?,系统,软件,名字,设备,互动,服务,工具,基础,发展,代码,a

    安装客户端linux命令?

    安装客户端linux命令?,软件,中心,在线,发行,全国,公司,工作,国家,信息,命令,

    linux管道传输命令?

    linux管道传输命令?,数据,工具,标准,命令,管道,通信,连续,系统,网络,灵活,Lin

    linux改文件编码命令?

    linux改文件编码命令?,系统,数据,地方,命令,文件,名称,工作,工具,格式,字符

    linux客户端连接命令?

    linux客户端连接命令?,系统,地址,服务,工具,位置,基础知识,网络,工作,基础,

    linux编码命令大全?

    linux编码命令大全?,系统,工作,信息,地址,命令,基础,目录,基础知识,时间,常

    Python 中文编码

    Python 中文编码,代码,培训,中文,你好,文件,世界,格式,实例,以上,结果,前面

    PEP8 Python 编码规范

    PEP8 Python 编码规范,异常,代码,名字,标准,培训,空格,注释,方式,模块,函数

    解决Python编码问题

    解决Python编码问题,系统,数据,分析,代码,密码,字符,字节,字符集,方法,培训

    Python2.x中的编码问题

    Python2.x中的编码问题,系统,异常,数据,环境,一致,代码,中国,培训,方法,字