【问题标题】:Configuring HTTP POST request from Nifi配置来自 Nifi 的 HTTP POST 请求
【发布时间】:2016-08-24 06:38:35
【问题描述】:

我正在尝试从 REST 客户端访问 WCF 服务。我正在从 REST 客户端向 WCF 服务发送 POST 请求。供您参考,详情如下。

服务合同定义如下:

[ServiceContract]
public interface IBZTsoftsensor_WcfService {

[OperationContract]
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json,  ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "/data")]
   string ExecuteModelJson(string inputModel);
}

而这个接口的实现如下:

public string ExecuteModelJson(string inputModel){
  try
  {
    BZTsoftsensor_ModelInput input =   JsonConvert.DeserializeObject<BZTsoftsensor_ModelInput>(inputModel);
  var results = this.ExecuteModel(input);
  return JsonConvert.SerializeObject(results);
  }
  catch (Exception ex)
  {
    return ex.Message;
  } 
 }

我从 REST 客户端请求此 WCF 服务,如下所示:

作为扩展,我必须从 NiFi 处理器访问此 WCF 服务。 您能否告诉我如何在 Nifi 中配置处理器以访问此 WCF 服务? 在 Nifi 处理器中,有一个 POSTHTTP 处理器(文档:https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi.processors.standard.PostHTTP/index.html)可用,但是我是想知道我该如何配置它?

或者可能有其他处理器可以使用invokeHTTP ?? (文档:https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi.processors.standard.InvokeHTTP/index.html

我已尝试配置 invokeHTTP 处理器。以下是配置参数。但是,我无法访问 WCF 服务。

更多参数如下:

【问题讨论】:

  • 假设不涉及握手(只是发布到 URL),InvokeHTTP 是您想要使用的处理器。当您尝试运行 InvokeHTTP 处理器时,它是否会因任何公告而失败?还是 WCF 服务记录任何错误?

标签: wcf http-post apache-nifi


【解决方案1】:

InvokeHttp 处理器使用流文件的内容作为请求体。 在设置流文件内容的 invokeHttp 之前,您必须有一个处理器,例如 replaceText 处理器。

另外不要忘记在 invokeHttp 处理器中将属性“send message body”设置为“true”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 2016-12-10
    • 2022-09-17
    • 1970-01-01
    • 2018-04-15
    • 2017-03-10
    • 1970-01-01
    相关资源
    最近更新 更多