我正在寫一個IHttpHandler的實現,將收到通過從其他網站一個普通的HTTP POST發送XML數據。 這裏有一個原型的執行情況:通過HTTP POST發送XML數據的IHttpHandler導致HttpRequestValidationException
public class MyHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string s = context.Request.Form["input"]; // <== this throws HttpRequestValidationException
XmlDocument doc = new XmlDocument();
doc.LoadXml(s);
// ...
}
public bool IsReusable
{
get { return false; }
}
}
我用這個簡單的頁面測試執行:
<body>
<form method="post" action="MPSConnector.Results.dsvc">
<textarea name="input"></textarea>
<input type="submit" value="Go!" />
</form>
</body>
的問題是,當我嘗試閱讀張貼的「輸入」值數據,如果它包含一個xml字符串,我得到的只是一個HttpRequestValidationException。 我試圖在web.config中使用
<pages validateRequest="false">
,和使驗證=「假」,在處理程序聲明屬性在httpHandles部分,沒有結果。
我如何讀取XML貼在我的處理程序? (請注意,我必須使用IHttpHandler完成此任務)。
編輯:框架版本:4.0,IIS 7.x
謝謝大家! :)
喜馬蒂亞斯,感謝您的回答。請注意,我無法控制處理程序將收到的數據,我發佈的頁面只是一個測試示例。我必須假定xml數據將不帶編碼,這是基於將在生產環境中發送數據的系統文檔。 – 2011-01-20 10:50:40