Here is what works for me:
 var jsonString = "{\"appid\":1,\"platformid\":1,\"rating\":3}"; var httpContent = new StringContent(jsonString, Encoding.UTF8, "application/json"); var message = await _client.PutAsync(MakeUri("App/Rate"), httpContent); Assert.AreEqual(HttpStatusCode.NoContent, message.StatusCode); 
and my action method:
 public void PutRate(AppRating model) { if (model == null) throw new HttpResponseException(HttpStatusCode.BadRequest); if (ModelState.IsValid) {  
and model
 public class AppRating { public int AppId { get; set; } public int PlatformId { get; set; } public decimal Rating { get; set; } } 
-stan
 source share