2012-04-30 17 views
0

我已經創建了一個c#web頁面,它將偵聽來自服務的POST數據。我已經看到,我可能需要使用Request.GetBufferlessInputStream(),它將讀取頁面數據。然後我將在我的代碼中進一步處理這些數據。正確使用Request.GetBufferlessInputStream()POST數據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聲明妥善處置流。