title: Error posting JSON to WCF Rest Service
body: <p>I have a WCF Rest service that i am try to test with the Firefox Rest Client,</p>
  
  <p>The signature of the method i am calling is </p>
  
  <pre><code>        [WebInvoke(Method = "POST", UriTemplate = "UploadEvidenceData/{userName}/{password}/{cdb}")]
      public EvidenceData UploadEvidenceData(string userName, string password, string cdb, EvidenceData evidence)
  </code></pre>
  
  <p>The Data Contract for evidence is </p>
  
  <pre><code>    [DataContract(Name = "EvidenceData", Namespace = "http://StudentEvidence.com")]
  public class EvidenceData
  {
      [DataMember]
      public string LearnerID { get; set; }
  
      [DataMember]
      public string UnitID { get; set; }
  
      [DataMember]
      public string AssessorID { get; set; }
  
      [DataMember]
      public int MethodO { get; set; }  //int
  
      [DataMember]
      public int MethodEwt { get; set; }  //int
  
      [DataMember]
      public int MethodEp { get; set; }  //int
  
      [DataMember]
      public int MethodQc { get; set; }  //int
  
      [DataMember]
      public int MethodEps { get; set; }  //int
  
      [DataMember]
      public int MethodPd { get; set; }  //int
  
      [DataMember]
      public int MethodS { get; set; }  //int
  
      [DataMember]
      public int MethodEwa { get; set; }  //int
  
      [DataMember]
      public int MethodEch { get; set; }  //int
  
      [DataMember]
      public int MethodEwe { get; set; }  //int
  
      [DataMember]
      public int MethodApel { get; set; }  //int
  
      [DataMember]
      public int EvidenceID { get; set; }  //int
  
      [DataMember]
      public string EvidenceFileName { get; set; }
  
      [DataMember]
      public int EvidenceFileSize { get; set; }  //int
  
      [DataMember]
      public string EvidenceDescription { get; set; }
  
      [DataMember]
      public string AssessorFeedback { get; set; }
  
      [DataMember]
      public string Signature { get; set; }
  
      [DataMember]
      public int RequirementID { get; set; }  //int
  
      [DataMember]
      public int ModuleID { get; set; }  //int
  
      public EvidenceData()
      {
          this.LearnerID = string.Empty;
          this.UnitID = string.Empty;
          this.AssessorID = string.Empty;
          this.MethodO = 0;
          this.MethodEwt = 0;
          this.MethodEp = 0;
          this.MethodQc = 0;
          this.MethodEps = 0;
          this.MethodPd = 0;
          this.MethodS = 0;
          this.MethodEwa = 0;
          this.MethodEch = 0;
          this.MethodEwe = 0;
          this.MethodApel = 0;
          this.EvidenceID = 0;
          this.EvidenceFileName = string.Empty;
          this.EvidenceFileSize = 0;
          this.EvidenceDescription = string.Empty;
          this.AssessorFeedback = string.Empty;
          this.Signature = null;
          this.RequirementID = 0;
          this.ModuleID = 0;
      }
  }
  </code></pre>
  
  <p>and when i use the client use the address <a href="http://something.com/Service/UploadEvidence/user/pass/mydb" rel="nofollow">http://something.com/Service/UploadEvidence/user/pass/mydb</a></p>
  
  <p>and in the body i put </p>
  
  <pre><code>{"AssessorFeedback":"Nothing to report","AssessorID":"32fac8c2-0f9b-4cad-a2e4-55b06e968da0","EvidenceDescription":"some evidence","EvidenceFileName":"Lighthouse.jpg","EvidenceFileSize":561276,"EvidenceID":0,"LearnerID":"61b9eca6-6c3e-4bd3-8963-69d9ad3e5eeb","MethodApel":0,"MethodEch":0,"MethodEp":0,"MethodEps":0,"MethodEwa":0,"MethodEwe":0,"MethodEwt":0,"MethodO":0,"MethodPd":0,"MethodQc":0,"MethodS":0,"ModuleID":1131,"RequirementID":30476,"Signature":null,"UnitID":"c33ea6e1-ac54-46dc-a512-3a2efafd5a0b"}
  </code></pre>
  
  <p>and i have custom header of application/json</p>
  
  <p>This all works fine from a .net client, but not from the rest client plugin of firefox 400 everytime.</p>
  
  <p>any help is very much appreciated</p>
  
  <p>Don</p>
  
  <p>My Web config File</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;configuration&gt;
    &lt;system.web&gt;
      &lt;httpRuntime maxRequestLength="2147483647"/&gt;
      &lt;compilation debug="true" targetFramework="4.0"&gt;
        &lt;assemblies&gt;
          &lt;add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /&gt;
        &lt;/assemblies&gt;
      &lt;/compilation&gt;
    &lt;/system.web&gt;
    &lt;system.webServer&gt;
      &lt;modules runAllManagedModulesForAllRequests="true"&gt;
        &lt;add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /&gt;
      &lt;/modules&gt;
    &lt;/system.webServer&gt;
    &lt;system.serviceModel&gt;
      &lt;behaviors&gt;
        &lt;serviceBehaviors&gt;
          &lt;behavior&gt;
            &lt;dataContractSerializer maxItemsInObjectGraph="2147483647"/&gt;
          &lt;/behavior&gt;
        &lt;/serviceBehaviors&gt;
      &lt;/behaviors&gt;
      &lt;serviceHostingEnvironment aspNetCompatibilityEnabled="true" /&gt;
      &lt;standardEndpoints&gt;
        &lt;webHttpEndpoint&gt;
          &lt;standardEndpoint name=""
                            helpEnabled="true"
                            automaticFormatSelectionEnabled="true"
                            defaultOutgoingResponseFormat="Json"
                            maxReceivedMessageSize="2147483647"
                            maxBufferSize="2147483647"
                            transferMode="Buffered" /&gt;
  
        &lt;/webHttpEndpoint&gt;
      &lt;/standardEndpoints&gt;
      &lt;services&gt;&lt;/services&gt;
    &lt;/system.serviceModel&gt;
  &lt;/configuration&gt;
  </code></pre>