2

我需要从 WCF 客户端向 Java WebService 发送多组如下所示的 cookie。

设置 Cookie:JSESSIONID=ABCDLhSgAceJ9bpEFSgLvi53;路径=/XXX

Set-Cookie: zz=mmm;kk=qqq;XXXX;

我从登录 JAVA WebService 收到这两个 cookie,我需要将这些相同的 cookie 转发到其他 Java Web 服务以维护会话。我曾尝试使用 IClientMessageInspector 进行以下操作,但无法发送如上所示的确切两个 cookie。我只能寄一个。

 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

您实际上只需要设置一个标题键:Cookie。请求 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 回答