そこで、Rest WebHttp を使用して wcf Web サービスを呼び出しています。また、テスト用に 2 番目のバインド mex をセットアップしました。私の方法は機能していますが、フィドラーまたはクライアント アプリを介して直接 httppost でテストしようとすると、400 Bad request エラーが発生します。複数のデータ契約をメソッドに渡しています。ラップされた BodyStyle を使用する必要がありますが、テスト用に xml をフォーマットする方法がわかりません。これと同じエラーを試すためのテストメソッドを作成しました。ここに私のコードがあります:私の他のすべてのメソッドは1つのデータコントラクトで機能しますが、2つあるこのメソッドは機能しません。問題はこの投稿の下部にある xml にあると思います。ラップする必要がありますが、ラップする方法がわかりません。
[OperationContract]
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped)]
string Test(wsAuth a, wsMed m);
[DataContract(Namespace = "")]
public class wsMed
{
[DataMember]
public string Test{ get; set; }
}
[DataContract(Namespace = "")]
public class wsAuth
{
[DataMember]
public string UserName { get; set; }
[DataMember]
public string Password { get; set; }
[DataMember]
public string DeviceId { get; set; }
}
私が使用している私のxml
<Test>
<wsAuth>
<DeviceId>jenglish</DeviceId>
<Password>treetop</Password>
<UserName>jenglish</UserName>
</wsAuth>
<wsMed>
<Test></Test>
</wsMed>
</Test>