=======================
2 楼saucer(思归)回复于 2004-03-14 21:34:30 得分 100something like
IServiceProvider provider = (IServiceProvider) HttpContext.Current;
HttpWorkerRequest wr = (HttpWorkerRequest) provider.GetService(typeof(HttpWorkerRequest));
string addr = wr.GetLocalAddress();
Response.Write(String.Format("NiC Address:{0}<BR>", addr));
byte[] bs = wr.GetPreloadedEntityBody();
String s = "";
if (bs != null && bs.Length >0)
s= System.Text.Encoding.Default.GetString(bs);
Response.Write(s + "<BR>");
if (!wr.IsEntireEntityBodyIsPreloaded())
{
Response.Write("normally shouldn't be here");
int n = 1024;
byte[] bs2 = new byte[n];
while (wr.ReadEntityBody(bs2,n) >0)
{
s = System.Text.Encoding.Default.GetString(bs2);
Response.Write(s + "<BR>");
}
}
note, as IIS receives data on its TCP/IP connection from the browser, it sends a copy to the ASP.NET worker process through a named pipe. You use ReadEntityBody to read the data from this pipe. But you might not need to use ReadEntityBody if the data is not huge