通过邮递员将帖子请求接收到 wcf

Posted

技术标签:

【中文标题】通过邮递员将帖子请求接收到 wcf【英文标题】:receiving post request through postman into wcf 【发布时间】:2019-12-13 22:48:41 【问题描述】:

我正在尝试使用 WCF 接收来自 Postman 的 XML [post] 消息,我首先需要了解一些来自 rest 的数据类型,例如 Stream、XML、HttpRequest。 我构建了这个简单的接收器,但到目前为止它无法正常工作。

    [WebInvoke(UriTemplate = "/PostMessage", Method = "POST")]
    public String InsertMessage(XmlEntity value)
    
        String re = null;
        foreach (XmlNode node in value.ChildNodes)
        
            string text = node.InnerText; 
            string tag = node.Name;

        
    re = text;
  

如果 Postman 将 Post 发送到我的项目,我的方法不会变成 get 类型吗?

如何访问 xml 请求中的每个标签及其各自的值?

邮递员向我发送此错误 400 遇到无效的根元素名称“消息”。 'root' 是唯一允许的根元素名称。

【问题讨论】:

【参考方案1】:

无法在 WCF 中正确序列化和反序列化 XmlEnity 的类型。我们最好使用强类型数据,并用 DataContract 属性装饰自定义类。https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/using-data-contracts SOAP 消息中的 XML 和 JSON 数据格式由 WCF 框架本身实现。

    [WebInvoke(Method = "POST",
  ResponseFormat = WebMessageFormat.Xml,
   RequestFormat = WebMessageFormat.Xml,
  BodyStyle = WebMessageBodyStyle.WrappedRequest,
        UriTemplate ="BookInfo/")]

请参考回复中的例子。Get the object is null using JSON in WCF Service 如果有什么可以帮助的,请随时告诉我。

【讨论】:

以上是关于通过邮递员将帖子请求接收到 wcf的主要内容,如果未能解决你的问题,请参考以下文章

如何使用邮递员休息客户端将帖子请求发送到以下帖子方法

从 ajax 调用传递到 wcf 的参数被接收为 null

使用 DataContractSerializer 从 WCF 服务接收到的序列化响应

通过特定网址在Twitter上接收新帖子的通知

WCF服务接收空请求

无法在 wcf c# 中接收 xml 发布请求值