3

bLogical REST Start Kit for BizTalk ( http://biztalkrest.codeplex.com/ ) を使用して、JSON メッセージを BizTalk で受信しようとしています。

メッセージを正常に受信して変換し、オーケストレーションから応答を返すことができますが、BizTalkRESTResponseHandler を介して応答を変換すると、HTTP コンテンツ タイプが強制的に「application/xml」に戻されます。明示的に「application/json」に設定しています。Content-Type は、Fiddler および SoapUI で要求と応答をトレースすることによって確認されます。

Accept: Request の値は「application/json」です。

Wcf-Custom アダプター スタックをさらにトレースして、Content-Type がリセットされている場所を確認する方法はありますか?

4

1 に答える 1

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");

取得する代わりに:

ここに画像の説明を入力

あなたはこれを得るでしょう:

ここに画像の説明を入力

于 2013-09-11T09:46:01.347 に答える