Это поздний ответ, но я надеюсь, что он кому-нибудь поможет.
Я также пытался заставить работать веб-сервис JSON "POST", но его параметр всегда устанавливался как null.Забудьте о попытке десериализации любых данных JSON, там никогда не было над чем работать!
public string CreateNewSurvey(string JSONdata)
{
if (JSONdata == null)
return "JSON received: NULL, damn.";
else
return "You just sent me: " + JSONdata;
}
Мои веб-службы GET работали великолепно, но этот "POST" сводил меня с ума.
Как ни странно, я решил изменить тип параметра с string to Stream .
public string CreateNewSurvey(Stream JSONdataStream)
{
StreamReader reader = new StreamReader(JSONdataStream);
string JSONdata = reader.ReadToEnd();
// Finally, I can add my JSON deserializer code in here!
return JSONdata;
}
... и в моем web.config ...
[OperationContract(Name = "createNewSurvey")]
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, UriTemplate = "createNewSurvey")]
string CreateNewSurvey(Stream JSONdata);
С этим, наконец, мое приложение для iPad можетпозвоните в мою службу WCF.Я был счастливым человеком!Надеюсь, это поможет.