我必须通过BizTalk连接REST服务.该服务返回JSON响应,如下所示.当BizTalk响应端口尝试解码JSON消息时,我收到有关JSON到XML转换的错误.由于JSON消息中嵌入了HTML标记,因此发生此错误.
错误:
(执行响应(接收)管道失败:"Avansas.Paritus.Suggest.T.JSONReceive,Avansas.Paritus.Suggest.T,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 7b2984270a9ffd13"来源:"JSON解码器"发送端口:"Avansas.Ibrahim.Suggest.T.SendPort"URI:"api1.test.com/services/rest";原因:解析值时遇到意外字符:<.路径'',第0行,位置0 .)
例如:
如下所示,响应消息在JSON中有一个标签元素.Label元素有一个带有html标签(City)的文本,这就是BizTalk尝试将JSON转换为XML时出现错误的原因.我认为BizTalk尝试将JSON转换为图2,但我想将其转换为图3.
我该如何解决这个问题?
有没有任何方法在没有任何架构的情况下在业务流程上进行passthru传输?
图1
{
"suggestion": [
{
"id": "[31 31 31 30 30 39]",
"label": "Global <b>City</b> 2. Etap Global <b>C?ty</b> ",
"value": "Global <b>City</b> 2. Etap Villalar? "
},
{
"id": "[39 33 36 32 35 36]",
"label": "<b>City</b> Aqua Villas Sk. Ku?adas? Ayd?n",
"value": "<b>City</b> Aqua Villas Sk. Ku?adas? Ayd?n"
}
]
}
Run Code Online (Sandbox Code Playgroud)
图2:
<root>
<suggestion>
<id>[31 31 31 30 30 39]</id>
<label>Global
<b>City</b> …Run Code Online (Sandbox Code Playgroud) 我有一个业务流程,它接收来自本地休息服务的请求然后发送请求到另一个远程Rest服务然后如果远程服务成功返回200个HTTP代码的响应BizTalk可以处理响应消息,但如果HTTP响应代码不同那么200 BizTalk无法处理故障响应消息.
BizTalk日志在事件查看器上给出以下错误.
Details:"System.Net.WebException: The remote server returned an unexpected response: (400) Bad Request.
{"errorMessage":{"message":"En az 1 adres alani gereklidir.","moreInfoURL":"http://paritus.com/kb/api-errors","status":400}}".
Run Code Online (Sandbox Code Playgroud)
在此问题之后,我在发送端口上添加了一个故障操作,但BizTalk仍然无法捕获失败消息.你有什么想法吗?