Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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
ASP.NET中分块传输编码http请求的读正文_Asp.net_Asp.net Mvc_Chunked Encoding - Fatal编程技术网

ASP.NET中分块传输编码http请求的读正文

ASP.NET中分块传输编码http请求的读正文,asp.net,asp.net-mvc,chunked-encoding,Asp.net,Asp.net Mvc,Chunked Encoding,J2ME客户端正在使用分块传输编码发送HTTP POST请求 当ASP.NET(在IIS6和WebDev.exe.server中)尝试读取请求时,它会将内容长度设置为0。我想这是可以的,因为加载请求时内容长度未知 但是,当我将Request.InputStream读到底时,它返回0 下面是我用来读取输入流的代码 using (var reader = new StreamReader(httpRequestBodyStream, BodyTextEncoding)) { string r

J2ME客户端正在使用分块传输编码发送HTTP POST请求

当ASP.NET(在IIS6和WebDev.exe.server中)尝试读取请求时,它会将内容长度设置为0。我想这是可以的,因为加载请求时内容长度未知

但是,当我将Request.InputStream读到底时,它返回0

下面是我用来读取输入流的代码

using (var reader = new StreamReader(httpRequestBodyStream, BodyTextEncoding)) {
    string readString = reader.ReadToEnd();
    Console.WriteLine("CharSize:" + readString.Length);
    return BodyTextEncoding.GetBytes(readString);
}
我可以用Fiddler模拟客户的行为,例如

URL

标题: 用户代理:Fiddler 传输编码:分块 主持人:somesite.com:15148

身体 兔子。谢谢你的到来,它非常有用

我的身体读取器将返回一个零长度字节数组…lame

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


我找到了IIS,但它不起作用。

该url不再起作用,因此很难直接测试它。我想知道这是否可行,谷歌在网站上找到了一位对此有经验的人。如果你重新建立你的网站,我可以看看这是否真的有效

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

似乎是官方的:

默认情况下,客户机发送大型 通过使用分块HTTP的二进制流 传输编码因为ASP.NET 开发服务器不支持 这种编码,您不能使用 此Web服务器将承载流媒体 必须接受大型数据的数据服务 二进制流

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());
}