我正在尝试使用BizTalk的bLogical REST Start Kit(http://biztalkrest.codeplex.com/)将JSON消息接收到BizTalk中。
我能够成功接收消息,对其进行转换,并从我的Orchestration返回响应,但是当我通过BizTalkRESTResponseHandler将响应转换回来时,HTTP Content-Type被强制回“application / xml” ,即使我明确地将它设置为'application / json'。通过跟踪Fiddler中的请求和响应以及SoapUI来确认Content-Type。
Request上的Accept:值是'application / json'
我是否可以进一步了解Wcf-Custom适配器堆栈以了解内容类型的重置位置?
答案 0 :(得分:0)
您可以通过在IDispatchMessageInspector中返回消息之前添加HttpResponseMessageProperty来解决此问题。您可以直接在BizTalkRESTResponseHandler IDispatchMessageInspector中执行此操作,也可以单独执行此操作。
要在BizTalkRESTResponseHandler中执行此操作,请获取源代码,并在最后“reply = newReply”上方的BeforeSendReply方法中添加以下3行代码。
HttpResponseMessageProperty prop = new HttpResponseMessageProperty();
newReply.Properties.Add(HttpResponseMessageProperty.Name, prop);
prop.Headers.Add("Content-Type", "application/json;charset=utf-8");
现在而不是得到:
你会得到这个: