Android JSON post do usługi WCF

Mam problem z moim klientem z Androidem próbującym wysłać klasę JSON do mojej usługi wcf. Oto kod dla klienta Android:

    public HttpResponse TestPost() throws Exception 
{

    HttpPost httpost = new HttpPost(url+"/TestPost");

    JSONStringer img = new JSONStringer()
        .object()
        .key("TestModel")
            .object()
                .key("p1").value("test")
                .key("p2").value("test")
                .key("p3").value(1)
                .key("p4").value("test")
                .key("p5").value(2)
                .key("p6").value("test;test")
            .endObject()
        .endObject();
        StringEntity se = new StringEntity(img.toString());

    httpost.setEntity(se);

    httpost.setHeader("Accept", "application/json");
    httpost.setHeader("Content-type", "application/json");

    return httpclient.execute(httpost);
}

Oto kod Wcf

    [OperationContract]
    [WebInvoke(Method = "POST",
        RequestFormat = WebMessageFormat.Json,
        ResponseFormat = WebMessageFormat.Json,
        BodyStyle = WebMessageBodyStyle.Wrapped,
        UriTemplate = "TestPost")]
    void TestPost(TestModel tm);





[DataContract]
public class TestModel
{
    [DataMember(Name = "p1")]
    public string p1 { get; set; }

    [DataMember(Name = "p2")]
    public string p2{ get; set; }

    [DataMember(Name = "p3")]
    public int p3 { get; set; }

    [DataMember(Name = "p4")]
    public string p4 { get; set; }

    [DataMember(Name = "p5")]
    public int p5 { get; set; }

    [DataMember(Name = "p6")]
    public string p6 { get; set; }

}

W mojej metodzie wcf parametr TestModel tm ma zawsze wartość null. Co może być nie tak?

questionAnswers(1)

yourAnswerToTheQuestion