2012-12-13 2 views
3

요청의 원시 데이터를 보내려고 노력 중이며 Page.Request.InputStream이 필요하다는 것을 알았지 만 내 페이지에 들어갈 때는 항상 비어 있습니다.Request.InputStream 항상 비어 있습니다.

저는 C#의 Windows Forms 응용 프로그램을 사용하고 있기 때문에 새로운 개념입니다.

이 내가로드 나의 페이지입니다 :

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

} 

감사합니다!

답변

5

어쩌면 누군가가 이미 InputStream을 읽고 그것을 끝까지 옮겼을까요? 를 읽기 전에 시작 부분에 위치를 재설정 해보십시오 :

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

나는이 tryed했던 나는 내가 그것을 잘 0 – XandrUu

+0

을 말하는 Request.InputStream보고 내 페이지를로드 단지 befor를 노후된 일시 정지 할 때 작동하지 않았다, 이 경우 코드를 표시하는 것이 좋습니다. 클라이언트와 서버뿐입니다. –

+0

나는 질문을 업데이트했다 – XandrUu

관련 문제