Asp.net Request.InputStream始终为空

Asp.net Request.InputStream始终为空,asp.net,asp.net-mvc-3,Asp.net,Asp.net Mvc 3,我试图发送一个请求的原始数据,并做了一些研究,发现Page.request.InputStream有我需要的内容,但当我进入我的页面时,它总是空的 我不熟悉这个概念,因为我来自C#中的Windows窗体应用程序 这是我加载的页面: public override void process(NameValueCollection parametersReceived) { string urlDestination = ""; urlDestination

我试图发送一个请求的原始数据,并做了一些研究,发现
Page.request.InputStream
有我需要的内容,但当我进入我的页面时,它总是空的

我不熟悉这个概念,因为我来自C#中的Windows窗体应用程序

这是我加载的页面:

public override void process(NameValueCollection parametersReceived)
    {
        string urlDestination = "";
        urlDestination = parametersReceived[Includes.SUPPLIER_URL];

        Stream str; String strSoapMessage = "";
        Int32 strLen, strRead;

        str = Request.InputStream;

        strLen = Convert.ToInt32(str.Length);

        byte[] strArr = new byte[strLen];

        strRead = str.Read(strArr, 0, strLen);

        for (int i = 0; i < strLen; i++)
        {
            if (strSoapMessage.Length > 0)
                strSoapMessage += "&";
            strSoapMessage += strArr[i].ToString();
        }

        saveMyLog("DATA COMMUNICATION: \n Destination: " + urlDestination + "\n Request: " + strSoapMessage);


        HttpWebRequest webRequest = null;

        webRequest = (HttpWebRequest)WebRequest.Create(new Uri(urlDestination));
        webRequest.Method = "POST";
        webRequest.ContentType = "text/xml";
        webRequest.Headers.Add("SOAPAction", urlDestination);

        using (StreamWriter requestStream = new StreamWriter(webRequest.GetRequestStream()))
        {
            requestStream.Write(strSoapMessage);
        }


        strSoapMessage = "";
        strSoapMessage = new StreamReader(webRequest.GetResponse().GetResponseStream()).ReadToEnd();

        Response.Write(strSoapMessage);
        saveMyLog("\n Status: " + ((HttpWebResponse)webRequest.GetResponse()).StatusCode.ToString() + "\n Response: " + strSoapMessage);

}
public覆盖无效过程(收到NameValueCollection参数)
{
字符串urlDestination=“”;
urlDestination=收到的参数[包括.SUPPLIER_URL];
Stream str;字符串strSoapMessage=“”;
Int32 strLen,strRead;
str=Request.InputStream;
strLen=Convert.ToInt32(str.Length);
字节[]strArr=新字节[strLen];
strRead=str.Read(strArr,0,strLen);
对于(int i=0;i0)
strSoapMessage+=“&”;
strSoapMessage+=strArr[i].ToString();
}
saveMyLog(“数据通信:\n目的地:+urlDestination+”\n请求:+strSoapMessage);
HttpWebRequest-webRequest=null;
webRequest=(HttpWebRequest)webRequest.Create(新Uri(urlDestination));
webRequest.Method=“POST”;
webRequest.ContentType=“text/xml”;
webRequest.Headers.Add(“SOAPAction”,urlDestination);
使用(StreamWriter requestStream=newstreamwriter(webRequest.GetRequestStream()))
{
Write(strSoapMessage);
}
strSoapMessage=“”;
strSoapMessage=newstreamreader(webRequest.GetResponse().GetResponseStream()).ReadToEnd();
Response.Write(strSoapMessage);
saveMyLog(“\n状态:”+((HttpWebResponse)webRequest.GetResponse()).StatusCode.ToString()+”\n响应:“+strSoapMessage”);
}

谢谢

可能有人已经读取了InputStream并将其移动到了末尾?在开始读取之前,尝试重置位置:

Request.InputStream.Position = 0;
// now read from the stream
byte[] data = new byte[Request.InputStream.Length];
Request.InputStream.Read(data, 0, data.Length);

我尝试过这一点,但在加载页面查看请求之前暂停breake时没有起作用。InputStream它说0好吧,在这种情况下,您可能需要显示您的代码:客户端和服务器。