【发布时间】:2020-09-24 07:59:12
【问题描述】:
我正在尝试向绑定 HTTPs 的 Mule 模拟服务发布消息。我可以看到消息在发布到 Mulesoft 的服务之前被转换为适当的 JSON 格式。
我什至尝试过使用 Postman 将这条消息直接发布到服务中,并且效果很好。但是通过 WCF-WebHttp 适配器发送相同的消息时,我不断收到以下错误:
从 BizTalk WCF-WebHttp 适配器向 Mule 服务发布消息时出错: 服务 https://anypoint.mulesoft.com/mocking/api/v1/links/uuid/uriparam 不支持内容类型 application/json 客户端和服务绑定可能不匹配。 {"code":"INVALID_RESPONSE_ACCEPT_HEADER","message:"尝试查找无效媒体类型的响应时出错"}*
WCF-WebHttp 适配器配置为使用安全模式作为传输和传输客户端凭据类型为无,因为服务不需要任何身份验证或证书。
请注意,相同的 BizTalk 应用程序被配置为将消息推送到虚拟 Mulesoft 云中心服务,并且它可以与相同消息内容的 HTTP URL 正常工作。
【问题讨论】:
-
嗨 Abjt G。该错误似乎表明 Mulesoft 服务不喜欢 BizTalk 发送的内容类型应用程序/json。您能否与 Mulesoft 服务的所有者确认他们期望的内容类型?可能他们想要 Content-type: text/json 代替。
-
谢谢@Dijkgraaf,当然可以。我尝试使用 Content-Type text/json 发送请求,但收到错误响应 (400),因为“text/json 不是请求正文接受的 MIME 类型之一”。有趣的是,Postman 对 Content-Type 指定为 application/json 的同一服务的请求被接受,但对于任何其他内容类型,它都会引发错误请求 (400) 错误。
-
可以对比一下服务发送的HTTP请求和Postman发送的HTTP请求。也许您的服务会自动添加一些请求标头。
-
如何在 BizTalk 中发送
Content-Type: application/json?您是否在 WCF-WebHttp 传输属性的“消息”选项卡上设置了它? -
是的,在消息选项卡上。我还创建了一个自定义行为并在其中设置了内容类型。但无论哪种方式,它都给出了相同的响应。