次のような操作を行う WCF REST サービスがあります。
[OperationContract]
[WebInvoke(UriTemplate = "/User", BodyStyle = WebMessageBodyStyle.Bare, Method = "POST", RequestFormat = WebMessageFormat.Json)]
void User(User user);
これを Fiddler から呼び出すと、次のように Content-Type="application/json" を指定すると正常に動作します。
Content-Type: application/json
Host: localhost:58150
Content-Length: 172
Expect: 100-continue
しかし、Content-Type を除外すると、リクエストの本文を XML として処理しようとするため、エラー 400 が発生します。これは非常に面倒です。RequestFormat = WebMessageFormat.Json を設定すると、Content-Type を指定する必要がなくなると本当に思いますが、そうではありません。実際のところ、「RequestFormat」をドロップしても何も変わりません。WebMessageBodyStyle の「ラップ」も試しましたが、DTO は null を通過します。
明確にするために、これは、投稿の本文でも XML を使用する (および Content-Type を省略する) 場合に発生します...したがって、私が本当に達成したいのは次のとおりです。
WebInvoke を使用するときに WCF Rest メソッドを Content-Type を必要としないようにするにはどうすればよいですか (WCF が自動的に判断することを期待します)。
これは私を夢中にさせています。助けてください。