WebApi GET request map to a POST converting querystring parameters
===

I have a get request from a third party with a large querystring array.

I would really like this mapped to an object

e.g. 


        public HttpResponseMessage Post(BigObject bo)
        {
            Console.WriteLine(bo.price);
            ..
            ..
        }

        public class BigObject
        {
            public string Title { get; set; }
            ..
            ..
        }

I have the following which is a method override handler which allows me to change the get to a post method.  I am having trouble determining how I convert the querystring parameters to form parameters.  I also assume I wold then need to determine th content length.

e.g. 

    public class MethodOverrideHandler : DelegatingHandler
    {
        protected override Task<HttpResponseMessage> SendAsync(
            HttpRequestMessage request, CancellationToken cancellationToken)
        {
            var qsparams = request.RequestUri.ParseQueryString();
            if (request.Method == HttpMethod.Get && !string.IsNullOrEmpty(qsparams["MagicKey"]))
            {
                request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
                for (int i = 0; i < qsparams.Count; i++ )
                {                  
                    request.Properties.Add(qsparams.GetKey(i), qsparams[i]);
                }
                // Change the request method.
                request.Method = HttpMethod.Post;
            }
            return base.SendAsync(request, cancellationToken);
        }
    }
