2

以下のような Cookie の複数のセットを WCF クライアントから Java WebService に送信する必要があります。

セット Cookie: JSESSIONID=ABCDLhSgAceJ9bpEFSgLvi53; パス=/XXX

セット Cookie: zz=mmm;kk=qqq;XXXX;

これらの 2 つの Cookie は、ログイン Java Web サービスから受け取っています。セッションを維持するために、これらの同じ Cookie を他の Java Web サービスに転送する必要があります。IClientMessageInspector を使用して次のことを試みましたが、上記のように正確に 2 つの Cookie を送信できませんでした。1枚しか送れません。

 if (!string.IsNullOrEmpty(cookieValueFromLogin))
        {
            string[] cookieValues = cookieValueFromLogin.Split(new char[] { ',' });

            for (int i = 0; i < cookieValues.Length; i++)
            {
                if (!string.IsNullOrEmpty(cookieValues[i]))
                {

                    httpRequestMessage.Headers.Add("Cookie", cookieValues[i] );                      

                }
            }               

        }

どなたかご存知の方はこちらまでお願いします。

ありがとう国会議員

4

1 に答える 1

1

実際に設定する必要があるのは、1 つのヘッダー キー、Cookie だけです。リクエスト Cookie ヘッダーは次のようになります。

クッキー: JSESSIONID=ABCDLhSgAceJ9bpEFSgLvi53;zz=mmm;kk=qqq;

以下の変更により、正しい値が生成されるはずですが、よりクリーンに実装できることはほぼ確実です。

 if (!string.IsNullOrEmpty(cookieValueFromLogin))
    {
        string[] cookieValues = cookieValueFromLogin.Split(new char[] { ',' });
        string cookieHeader = new string();        

        for (int i = 0; i < cookieValues.Length; i++)
        {
            if (!string.IsNullOrEmpty(cookieValues[i]))
            {

                cookieHeader = cookieHeader + cookieValues[i];                      

            }
        }  

        httpRequestMessage.Headers.Add("Cookie", cookieHeader );             

    }
于 2013-09-13T19:49:17.787 に答える