我正在尝试从 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 服务? …
在发布关于 Apache NiFi InvokeHTTP 的这个问题之前,我已经完成了所有其他问题及其答案,但我仍然不确定我应该拥有的最佳流程。我的情况如下:
1) 从 Apache Kakfa,我得到原始元数据。
2)使用 EvaluateJSONPath 我得到我想要的属性。
3) 使用 RouteOnAttribute 我根据从上面第 2 步中获得的属性值创建了 3 条路由。
4) 现在根据属性值,我想决定是否应该使用 GET、POST 或 Delete。
5) 我的问题是在哪里/如何设置 POST 消息?获取消息?删除邮件正文?
6) 我可以在 InvokeHTTP 提供的配置部分设置 URL。但是消息正文我不知道那个属性是什么?或者它在使用 ReplaceText 的流文件中?
我在某处读到,在您将 Restful POST HTTP 请求转移到 InvokeHTTP 之前,您必须有另一个处理器才能更改流文件的内容。
请帮忙。谢谢。问候, Yeshwant
我尝试在Apache NiFi中使用InvokeHttpProcessor来执行具有复杂JSON主体的POST请求.相应的本教程:http://www.tomaszezula.com/2016/10/30/nifi-and-http-post-configuration
我知道如何使用UpdateAttribute处理器添加名称/值对,然后通过AttributesToJSON应用其他转换.
但是如何处理复杂的JSON?例如,我必须向GoogleAnalytics报告API执行请求,因此我需要执行此请求:
POST https://analyticsreporting.googleapis.com/v4/reports:batchGet
{
"reportRequests":
[
{
"viewId": "XXXX",
"dateRanges": [{"startDate": "2014-11-01", "endDate": "2014-11-30"}],
"metrics": [{"expression": "ga:users"}]
}
]
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?