2013-07-29 233 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