URL encoded colon resolves in 400 Bad Request

前端 未结 1 427
甜味超标
甜味超标 2020-12-06 13:11

Why does this url resolve in 400 - Bad Request?

http://localhost:2785/api/ticker/Web.App.QuotesReaders/search=se%3Aabb

My environment is Visual Studio 2010,

相关标签:
1条回答
  • 2020-12-06 13:45

    It seems that ASP.net does not allow colons before the '?' in an URL, even if it is encoded as %3A.

    For example, these won't work

    http://foo.org/api/persons/foo:bar http://foo.org/api/persons/foo%3abar

    But this works: http://foo.org/api/persons?id=foo%3abar

    In all examples, we would expect ASP.NET MVC to pass "foo:bar" as an id argument, properly decoded. I just tested this with MVC4 and it seems to work. It is annoying that it doesn't accept the URL encoding before the question mark though, but I'm sure there is a good reason for it. Probably to keep everything before the question mark a valid URL and any arguments after the question mark.

    0 讨论(0)
提交回复
热议问题