Have you tried printing your “body” variable and making sure it’s what your expecting?
I don’t have experience with WCF and I’m not sure any one else does. We make sure our routines talk to web servers supporting the HTTP protocol but what the webserver does after it gets the data is beyond the scope of what we can possibly support.
Your WCF service might be looking for something like a key-value pair in the body and you’re just shoving a JSON string in there. It might need to be:
body = “data=” … yourjsondata
but I have no clue what your service is actually looking for, so I can only speculate.