title: WebAPI route 404's when there is a trailing space in the URL
body: <p>With the default web api route</p>
  
  <pre><code>config.Routes.MapHttpRoute(
              name: "API Default",
              routeTemplate: "api/{controller}/{id}",
              defaults: new
                        {
                            id = RouteParameter.Optional
                        }
              );
  </code></pre>
  
  <p>and a controller </p>
  
  <pre><code>public class TestController : ApiController
  {
      [HttpGet]
      public HttpResponseMessage Get(string id)
      {
          return Request.CreateResponse(HttpStatusCode.OK, id);
      }
  }
  </code></pre>
  
  <p>A request to <code>'api/test/1'</code></p>
  
  <p>returns <code>1</code></p>
  
  <p>If for some reason you send a request to <code>'api/test/1%20'</code> </p>
  
  <p>the route 404's. </p>
  
  <p>Now this example may seem silly since browsers trim trailing spaces, but </p>
  
  <p>for a route like <code>'api/{controller}/{id}/{extrastuff}'</code></p>
  
  <p>the space in <code>'1 '</code> would convert to <code>'1%20'</code> and the request will 404 on the route not being found.</p>