如何从WCF客户端向Java Web服务发送多个cookie

时间:2013-09-12 10:23:57

标签: java wcf cookies setcookie

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

Set-Cookie:JSESSIONID = ABCDLhSgAceJ9bpEFSgLvi53;路径= / XXX

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

我从登录JAVA WebService接收的这两个cookie,我需要将这些相同的cookie转发到其他Java Web Service以维护会话。我尝试过使用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] );                      

                }
            }               

        }

如果有人知道,请在这里帮忙。

由于 MP

1 个答案:

答案 0 :(得分: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 );             

    }