【问题标题】:Dialogflow Fulfillment with WCF REST Post Method not receiving data使用 WCF REST Post 方法实现 Dialogflow 未接收数据
【发布时间】:2019-09-23 03:55:21
【问题描述】:

我创建了一个 WCF 服务如下:

[OperationContract]
        [WebInvoke(UriTemplate = "/GetOrder", ResponseFormat = WebMessageFormat.Json, Method = "POST")]
        string GetOrder(BotInterface order);

GetOrder 已经创建,现在它只是返回一个字符串,我只是想测试请求。如果我通过配置我的本地代码触发了意图,则它已被执行,但订单对象始终为空。如果我使用request.bin,那么post json数据就在那里,如果我使用soapui调用服务也可以,它只是对话流。

有什么线索吗?

【问题讨论】:

    标签: c# visual-studio wcf post dialogflow-es


    【解决方案1】:

    默认情况下,RequestFormat 是 XML 数据格式。 我们应该将请求正文指定为 XML 格式。

    <Product xmlns="http://schemas.datacontract.org/2004/07/RestML.Data">
      <Id>2147483647</Id>
      <Name>String content</Name>
    </Product>
    

    这是一个例子。
    can't receive xml post request values in wcf c#

    这里详细介绍一下参数发布时的数据格式。
    Get the object is null using JSON in WCF Service
    如果问题仍然存在,请随时告诉我。

    【讨论】:

    • 感谢您的帮助!我使用来自 SOAPUI 的 json 请求尝试了我的服务,并且运行良好。我发现问题出在我的应用程序的请求映射上,当我将 json 有效负载转换为 C# 对象时,有一个元素作为元素和类型重复,我不得不更改名称,使帖子失败。这就是为什么它总是为空。
    【解决方案2】:

    感谢亚伯拉罕的帮助!解决方案是:我使用来自 SOAPUI 的 json 请求尝试了我的服务,并且运行良好。我发现问题出在我的应用程序的请求映射上,当我将 json 有效负载转换为 C# 对象时,有一个元素作为元素和类型重复,我不得不更改名称,使帖子失败。这就是为什么它总是为空。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-26
      • 1970-01-01
      • 2012-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多