首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >配置Nifi的GET请求

配置Nifi的GET请求
EN

Stack Overflow用户
提问于 2016-08-24 15:51:31
回答 1查看 857关注 0票数 0

我正在尝试从浏览器访问WCF服务。我将从浏览器发送一个GET请求到WCF服务。供您参考,WCF服务的详细信息如下所示。

服务合同的定义如下:

代码语言:javascript
代码运行次数:0
运行
复制
    [ServiceContract]
    public interface IBZTsoftsensor_WcfService {

    [OperationContract]
   [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "json/?inputModel={inputModel}")]
      string ExecuteModelJson(string inputModel);
    } 

该接口的实现如下:

代码语言:javascript
代码运行次数:0
运行
复制
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;
  } 
 } 

当我使用URL从浏览器访问WCF服务

代码语言:javascript
代码运行次数:0
运行
复制
http://localhost:8733/Design_Time_Addresses/WcfServiceLibrary1/Service1/json/?inputModel={"Pyro":"30.0","O2":"20.0"} 

我的WCF服务成功响应了。

但是,使用上面的URL,当我配置GeTHTTP Nifi处理器时,处理器将错误地处理GET请求URL中的非法字符。

请您告诉我-,我在使用GetHTTP处理器时,必须在GET URL中做哪些更改?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-24 16:06:57

您可能需要对inputModel参数进行编码,可以使用NiFi表达式语言的urlEncode方法:

https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html#urlencode

作为URL属性尝试如下:

Addresses/WcfServiceLibrary1/Service1/json/?inputModel=${文字(“{\”Pyro\:\“30.0\”,\“O2\”:\“20.0\”}):urlEncode()}

或者,由于您的URL是固定的,所以您只需使用在线编码工具对其进行编码,这将提供如下内容:

Addresses/WcfServiceLibrary1/Service1/json/?inputModel=%7B%22Pyro%22%3A%2230.0%22%2C%22O2%22%3A%2220.0%22%7D%20

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39127862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档