2011-04-11 120 views
3

我有一個使用某個XML文檔的有效內容發佈到服務器(HTTP處理程序)的ActiveX。從HTTP POST請求負載檢索XML

有沒有更好的方法來檢索有效載荷到XML比下面?

private static byte[] RequestPayload() 
{ 
    int bytesToRead = HttpContext.Current.Request.TotalBytes; 
    return (HttpContext.Current.Request.BinaryRead(bytesToRead)); 
} 

using (var mem = new MemoryStream(RequestPayload())) 
{ 
    var docu = XDocument.Load(mem); 
} 

一旦我有「docu」,我可以使用LINQ to XML進行查詢。

謝謝

回答

1

只需從請求的InputStream中加載XML即可。

XDocument doc; 
using (Stream input = HttpContext.Current.Request.InputStream) 
{ 
    doc = XDocument.Load(input); 
} 

在我看來沒有必要使用MemoryStream。

+0

謝謝!我「我的情況下必須有一個字節[]不是一個流。 – Bill 2011-04-14 08:44:11

+0

以防萬一你不使用4.0框架:http://stackoverflow.com/questions/7666835/xdocument-load-error – 2013-04-18 15:52:14