cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Cookie as header

SOLVED
Newbie

Cookie as header

Hi,

I need to pass a cookie as header to server in order to get data from that.
For this I am Using following:

var Cookieparams = {

  proxyScheme: undefined /* STRING */,

    headers: {"Cookie":"UFJKKFF838NNBDH38B"} /* JSON */,

  ignoreSSLErrors: true /* BOOLEAN */,

  withCookies: true /* BOOLEAN */,

  url: "url?Parameters" /* STRING */,

};

// result: STRING

var result = Resources["ContentLoaderFunctions"].GetJSON(Cookieparams);

As a result it's displaying "No active sessions with given cookie". I suspect problem caused because of above code.

Please suggest a way to pass cookie as header.

Thanks,

Meenakshi

1 ACCEPTED SOLUTION

Accepted Solutions

Re: Cookie as header

This is the correct method; the important difference is that you are using the result of GetCookies as the cookie header. Note that sometimes the cookie result goes into a Cookie header, as in the original post:

i.e:

var params = {

  proxyScheme: undefined /* STRING */,

  //  headers: {"JSESSIONID":"4C211033F290F29A152173A47A26FC78"} /* JSON */,

  ignoreSSLErrors: true /* BOOLEAN */,

  useNTLM: undefined /* BOOLEAN */,

  workstation: undefined /* STRING */,

  useProxy: undefined /* BOOLEAN */,

  withCookies: true /* BOOLEAN */,

  proxyHost: undefined /* STRING */,

  url: "http://localhost:8080/Thingworx/Things" /* STRING */,

  timeout: undefined /* NUMBER */,

  proxyPort: undefined /* INTEGER */,

  password: "admin" /* STRING */,

  domain: "http://localhost:8080/" /* STRING */,

  username: "Administrator" /* STRING */

};

// result: STRING

var cookieResult = Resources["ContentLoaderFunctions"].GetCookies(params);

var Cookieparams = {

  proxyScheme: undefined /* STRING */,

    headers: {"Cookie":cookieResult } /* JSON */,

  ignoreSSLErrors: true /* BOOLEAN */,

  withCookies: true /* BOOLEAN */,

  url: "url?Parameters" /* STRING */,

};

// result: STRING

var result = Resources["ContentLoaderFunctions"].GetJSON(Cookieparams);

This will depend on the format required by the receiving server, but should match whatever works in postman.

6 REPLIES 6
Highlighted

Re: Cookie as header

var params = {

  proxyScheme: undefined /* STRING */,

  //  headers: {"JSESSIONID":"4C211033F290F29A152173A47A26FC78"} /* JSON */,

  ignoreSSLErrors: true /* BOOLEAN */,

  useNTLM: undefined /* BOOLEAN */,

  workstation: undefined /* STRING */,

  useProxy: undefined /* BOOLEAN */,

  withCookies: true /* BOOLEAN */,

  proxyHost: undefined /* STRING */,

  url: "http://localhost:8080/Thingworx/Things " /* STRING */,

  timeout: undefined /* NUMBER */,

  proxyPort: undefined /* INTEGER */,

  password: "admin" /* STRING */,

  domain: "http://localhost:8080/" /* STRING */,

  username: "Administrator" /* STRING */

};

// result: STRING

var result = Resources["ContentLoaderFunctions"].GetCookies(params);

// result: JSON

//var result = Resources["ContentLoaderFunctions"].GetJSON(params); // Return JSON

You can get cookie first or pass in the cookie using get cookie  then use GetJSON and pass cookie from the result set of  GetCookies to get the data what you need

I can get cookie as well as set cookie see above  or let me know you need any other way to achieve it

Re: Cookie as header

Thanks Niesh,

I am doing the exactly as I mentioned. I am able to get cookies from the server but when requesting GETJson with received cookie I am always getting "No active session". Same thing I can perform through POSTMAN.

Re: Cookie as header

I could not encountered  the error you are facing tried with postman as well ,

my whole code

var params = {

  proxyScheme: undefined /* STRING */,

  //  headers: {"JSESSIONID":"4C211033F290F29A152173A47A26FC78"} /* JSON */,

  ignoreSSLErrors: true /* BOOLEAN */,

  useNTLM: undefined /* BOOLEAN */,

  workstation: undefined /* STRING */,

  useProxy: undefined /* BOOLEAN */,

  withCookies: true /* BOOLEAN */,

  proxyHost: undefined /* STRING */,

  url: "http://localhost:8080/Thingworx/Things" /* STRING */,

  timeout: undefined /* NUMBER */,

  proxyPort: undefined /* INTEGER */,

  password: "admin" /* STRING */,

  domain: "http://localhost:8080/" /* STRING */,

  username: "Administrator" /* STRING */

};

// result: STRING

var cookieResult = Resources["ContentLoaderFunctions"].GetCookies(params);

var params = {

  proxyScheme: undefined /* STRING */,

   headers: {"JSESSIONID":cookieResult} /* JSON */,

  ignoreSSLErrors: true /* BOOLEAN */,

  useNTLM: undefined /* BOOLEAN */,

  workstation: undefined /* STRING */,

  useProxy: undefined /* BOOLEAN */,

  withCookies: true /* BOOLEAN */,

  proxyHost: undefined /* STRING */,

  url: "http://localhost:8080/Thingworx/Things" /* STRING */,

  timeout: undefined /* NUMBER */,

  proxyPort: undefined /* INTEGER */,

  password: "admin" /* STRING */,

  domain: "http://localhost:8080/" /* STRING */,

  username: "Administrator" /* STRING */

};

// result: JSON

var result = Resources["ContentLoaderFunctions"].GetJSON(params); // REturn JSON

Output is JOSN

You may try with different username and pass

Re: Cookie as header

This is the correct method; the important difference is that you are using the result of GetCookies as the cookie header. Note that sometimes the cookie result goes into a Cookie header, as in the original post:

i.e:

var params = {

  proxyScheme: undefined /* STRING */,

  //  headers: {"JSESSIONID":"4C211033F290F29A152173A47A26FC78"} /* JSON */,

  ignoreSSLErrors: true /* BOOLEAN */,

  useNTLM: undefined /* BOOLEAN */,

  workstation: undefined /* STRING */,

  useProxy: undefined /* BOOLEAN */,

  withCookies: true /* BOOLEAN */,

  proxyHost: undefined /* STRING */,

  url: "http://localhost:8080/Thingworx/Things" /* STRING */,

  timeout: undefined /* NUMBER */,

  proxyPort: undefined /* INTEGER */,

  password: "admin" /* STRING */,

  domain: "http://localhost:8080/" /* STRING */,

  username: "Administrator" /* STRING */

};

// result: STRING

var cookieResult = Resources["ContentLoaderFunctions"].GetCookies(params);

var Cookieparams = {

  proxyScheme: undefined /* STRING */,

    headers: {"Cookie":cookieResult } /* JSON */,

  ignoreSSLErrors: true /* BOOLEAN */,

  withCookies: true /* BOOLEAN */,

  url: "url?Parameters" /* STRING */,

};

// result: STRING

var result = Resources["ContentLoaderFunctions"].GetJSON(Cookieparams);

This will depend on the format required by the receiving server, but should match whatever works in postman.

Re: Cookie as header

Thanks James McCuen​,

I did the same as your instructions but still getting "No active session with supplied cookie" on passing received cookie as a header. I am getting cookie from our server. Is there any possibility that Thingworx cookie JSESSIONID is overwriting my  server's cookie which I am sending in header and that's why it is always responding that there is no active session with supplied cookie.

Meenakshi

Re: Cookie as header

Hey James McCuen​,

It's working for me as well now. The problem was due to spaces in headers.
My code was:
headers:{"Cookie":cookieResult} /* JSON */,


and the code that works as expected for me is:

headers: { "Cookie" : cookieResult  } /* JSON */,



Thanks,

Meenakshi