Pan*_*esh 7 wcf http-post apache-nifi
我正在尝试从 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);
}
Run Code Online (Sandbox Code Playgroud)
而这个接口的实现如下:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
从 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 服务。
InvokeHttp 处理器使用流文件的内容作为 tye 请求的主体。在设置流文件内容的 invokeHttp 之前必须有一个处理器,例如 replaceText 处理器。
另外不要忘记在 invokeHttp 处理器中将属性“send message body”设置为“true”