我有一个mirth实例(版本3.0.1)使用POST方法发送到web api restfull服务。
[POST("MessagesHl7/OML_O21")] public HttpResponseMessage
PostOmlo21([FromBody] sting receivedmessage) {..}
问题是发送给服务的消息hl7 在出站消息中切出第一个字符。例如,在消息中:
MSH | ^〜\& | CPSI ^ 1.3.6.1.4.1.27248.1.17 ^ ISO | CGH | ...
在receivedmessage变量中,仅接收文本MSH | ^〜\。 我该怎么办才能不删除邮件?
在http频道中,配置为:POST,不是查询参数, 在
标题内容类型application/x-www-form-urlencoded
,
内容类型值application/xml
,
,发送的值为=${message.encodedData}
。
答案 0 :(得分:2)
将您的操作方法更改为不使用绑定,只需将请求主体读为字符串。
[POST("MessagesHl7/OML_O21")]
public Task<HttpResponseMessage> PostOmlo21()
{
string receivedMessage = await Request.Content.ReadAsStringAsync();
}
答案 1 :(得分:1)
我建议使用Base64编码用于HL7管道消息 消息中有许多可以解释的特殊字符 在解析过程中以错误的方式。特别是在解析xml时。
当然,您必须在服务器端解码HL7消息。 但我觉得Mirth为你提供了所有的功能。
我不知道在Java适当的类和框架中使用哪个类在C#/ ASP中 编码解码Base64存在。我相信C#和ASP也是如此。