Skip to main content
1-Visitor
October 28, 2021
Question

PostJSON and PutJSON in ThingWorx 9.2

  • October 28, 2021
  • 3 replies
  • 2939 views

Hi,

 

How to use these two services of contentloaderfunctions.

 

We need to pass body as json for getting the response.

 

Please share the examples of both services especially PUT.

 

Thanks in advance.

3 replies

12-Amethyst
October 28, 2021

I don't have an example of PUT but it should be very similar to the Post Example.  For context the example below is making a post request to get an application TOKEN back and setting some thing properties.

try
{
	let content = {
		"Username": me.username,
		"Password": me.password
	};
	var response = Resources["ContentLoaderFunctions"].PostJSON({
		ignoreSSLErrors: true,
		url: me.baseURL + me.tokenEndpoint /* STRING */ ,
		content: content,
		contentType: "application/json"
	});
	
	var now = new Date();
	if (response.body.token && response.body.token != "") {
		me.token = response.body.token;
		me.lastSuccessfulAPICall = now;
		me.tokenExpirationDate = dateAddHours(now, me.tokenLifetimeHours);
		result = true;
	}
}
catch (err) {
	logger.error(me.name + ", error in GetToken service: " + err);
}

 

Thanks,

 

Travis

24-Ruby III
October 28, 2021

Here are some helpful materials:

 

"REST API Overview and Examples": https://community.ptc.com/t5/IoT-Tech-Tips/REST-API-Overview-and-Examples/td-p/534777

 

"How to call the RESTful API in a ThingWorx platform service": https://www.ptc.com/en/support/article/CS237875

 

"ThingWorx: Difference between GET, POST, and PUT REST methods": https://www.ptc.com/en/support/article/CS214689 

 

"How to Post XML or JSON Content to a Custom Thingworx Service via REST API": https://www.ptc.com/en/support/article/CS201979

 

"ThingWorx: Post JSON to a service that accepts JSON as an input parameter": https://www.ptc.com/en/support/article/CS213601

 

16-Pearl
October 28, 2021

Hi @RK_0705 ,

 

Try something like this:

 

var headers = {
	"header1": me.header1,
	"header1": me.header2
};

var body= {
	"param1": me.param1,
	"param2": me.param2
};

var directURL = "<Your_Endpoint_URL>";

// It returns JSON
var result = Resources["ContentLoaderFunctions"].PostJSON({
	url: directURL /* STRING */,
	content: body /* JSON */,
	headers: headers /* JSON */,
	useProxy: true /* BOOLEAN */,
});

 

Note: I created header and body parameters as a Thing properties, but you can pass them as a service parameters too. Hope this helps.

 

Thanks,

Shirish