2012-04-30 3 views
0

서비스에서 POST 데이터를 수신하는 C# 웹 페이지를 만들었습니다. 페이지 데이터를 읽을 Request.GetBufferlessInputStream()을 사용해야 할 수도 있습니다. 그런 다음이 코드를 추가로 처리 할 것입니다.POST 데이터에 대해 Request.GetBufferlessInputStream()을 올바르게 사용하는 중 C#

그러나 게시물 데이터를 가져올 수 없습니다! 나는 내가 사용해야한다고 발견했다.

Stream httpStream = Request.GetBufferlessInputStream(); 
Response.Write(httpStream.ToString()); 

그러나 나는 그것을 어떻게 읽어야할지 모르겠다. 0에서 끝까지 읽으려고 시도했지만 반환 된 숫자 만 가져옵니다 (바이트 데이터로 가정)?

기본적으로 문자열을보고 싶습니다! 나는 CURL을 사용하여 게시물을 가짜로 만들었습니다. 그 코드는

curl -H "Content Type: application/xml" -d "<callback var=\"matt\">" -X POST http://localhost:1111/Default.aspx 

그래서 내가 출력 <callback var="matt"> 내 스크립트를 기대 여기에있다. 어떤 아이디어?

답변

1

이 당신이

Stream stream = Request.InputStream; 

StreamReader reader = new StreamReader(stream, Request.ContentEncoding); 

string text = reader.ReadToEnd(); 
+0

완벽한 - 감사합니다! –

0
using (var streamReader = new StreamReader(Request.GetBufferlessInputStream(), Request.ContentEncoding)) 
{ 
    string requestBody = await streamReader.ReadToEndAsync(); 
} 

이 비 차단 비동기 방식과 using 문이 제대로 스트림을 처분를 사용하여 읽 도움 말이죠 것입니다.

관련 문제