因此,我使用REST WebHTTP调用WCF Web服务。我还设置了第二个绑定MEX进行测试。我的方法正在起作用,但是当我尝试通过客户端应用程序测试Fiddler或Straight HTTPPOST时,我会遇到400个不良请求错误。我将多个数据合同传递给该方法。它迫使我使用包裹的身体风格,但我不知道如何将XML格式化进行测试。我创建了一种测试方法来尝试此方法和同样的错误。这是我的代码:我所有的其他方法都可以与一个数据合同一起使用,但是我有两个方法没有。我相信这个问题在本文底部的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>

没有正确的解决方案

其他提示

恐怕您会为此挣扎。首先,您缺少数据合同序列化名称空间。 Datacontractserializer对其所需的XML形式非常挑剔。

只是一个问题 最近 从一个试图做一些简单的事情的人那里,他很难让WCF接受它。

这里 是如何格式化包装参数的解释。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top