【问题标题】:How to send Mirth HTTP connector using POST如何使用 POST 发送 Mirth HTTP 连接器
【发布时间】:2013-04-12 18:24:08
【问题描述】:

我们有一个 mirth 实例使用 POST 方法发送到休息服务。

不过,Mirth 似乎是通过 URL 发送至少一个参数(如 GET)。

我们设置了以下选项:

方法:POST 多部分:否 发送回复:无 响应内容:标头和正文为 XML 身份验证:否 使用持久队列:否 字符集编码:UTF-8

那么我们有5个查询参数——

其中之一是名称“文件”和“${message.rawData}”的值。我正在查看 Apache 请求日志,并且可以看到这个属性/值对出现在 URL 中(好像它正在执行 GET 而不是 POST)。

没有标题

内容类型 text/plain 内容:字面意思“没有数据”。

我们正在使用 Mirth Connect Server 2.2.1.5861

如何强制此值(“文件”)通过 POST?

【问题讨论】:

  • 查看我的 HealthcareIT 作为 StackExchange 站点的建议,这个问题非常适合:area51.stackexchange.com/proposals/51758/healthcare-it

标签: web-services mirth


【解决方案1】:

虽然@Dave 的回应是有道理的,但它实际上对我不起作用。但它确实让我走上了进一步调查的道路。

最大的关键是,为了将列表属性/值对作为“网络表单处理”意义上的“帖子”发送,您需要这样做:

将有效负载“类型”设置为:

application/x-www-form-urlencoded

这会强制“发布”所有元素。如果你想要一个混合包(由于最纯粹的原因是“糟糕的形式”),那么你需要跳过更多的箍。

详情见以下链接:

Mirth Forums Thread related to accessing a RESTful web service

【讨论】:

【解决方案2】:

mirth 中的查询参数是 URL 参数。因此,它会遇到类似于 Get 的情况。如果您想发布变量,您需要在 http 发送器的“内容”部分对它们进行编码。

我相信它遵循类似的编码,尽管您可能想进一步研究它

lastName=Smith&age=31&team=woodchucks

所以你可能想要这样的东西:

file=${message.rawData}

【讨论】:

  • 是的,这是有道理的,但我还没有让它工作。我只是使用硬编码的值,但在 POST 部分中仍然没有任何内容......我会继续破解它......
  • 这不适用于 Mirth 3.x,它取决于 Content Type 字段(请参阅接受的答案)。值 application/x-www-form-urlencoded 将值从查询字符串移动到后参数。
猜你喜欢
  • 1970-01-01
  • 2013-07-23
  • 1970-01-01
  • 2013-05-14
  • 2012-01-03
  • 1970-01-01
  • 2020-09-24
  • 2018-07-01
  • 2014-11-16
相关资源
最近更新 更多