2013-07-29 191 views
1

錯誤的請求我有一個API URL像下面我mvc4應用處理在asp.net網頁API

http://localhost:15839/api/mydata/getdata/3365895543/PROBLEMDATA/myotherparam 

現在客戶端消耗上面的網址發送httprequest。作爲迴應,api正在發送一個response。但在PROBLEMDATA的url用戶發送的壞字符給我Bad Request - Invalid URL。我無法強制我的客戶端來源編碼數據。我需要在我的web api中處理它,並給我的客戶端返回一個字符串"Unsucessful"。我看過012apwebapi週期想知道我應該處理這一點。可能在http消息處理程序但是如何?我可能需要關注this。但Register(HttpConfiguration config)也沒有受到衝擊

+0

你想讓請求到達* desired * api控制器還是隻是更好地處理錯誤? – wal

+0

如果請求可以到達將是偉大的控制器其他明智我發送json響應「unscussful」回到客戶端 – Tassadaque

+0

你提供的最後一個鏈接('DelegatingHandler')似乎無論如何幫助,因爲400錯誤的請求被驗證* *之前它擊中了這個。在web api中做你想做的事可能是不可能的 - 它可能是最好的問題在專門的web api論壇:http://forums.asp.net/1246.aspx/1?ASP+NET+Web+ API – wal

回答

0

我相信你可以通過覆蓋application_error方法捕獲全局。從那裏,我想你可能會產生「不適當的」響應或將請求一起傳遞到控制器級別進行處理。

Take a look at this question as well

+0

您將如何「通過請求一起在控制器級別處理」? – wal

+0

@wal通過使用Response.Redirect或通過將相應的控制器聲明爲IController並使用execute方法。通過使用RawUrl的一些正則表達式分支,你可以猜測你需要發送響應的地方,或者將請求發送給錯誤控制器作爲失去的手段。 –

+0

這是不理想的,因爲你現在需要做一個準實施的API路由到右側的控制器 – wal