我正在尝试从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服务。
答案 0 :(得分:2)
InvokeHttp处理器使用流文件的内容作为tye请求的主体。 在invokeHttp之前必须有一个处理器来设置流文件的内容,例如replaceText处理器。
也不要忘记在invokeHttp处理器中将属性'send message body'设置为'true'