Search code examples
pythonhttppython-requeststhingworx

Not able to upload the data on thingworx with api


Tried many ways to upload the data(postman, httpie etc as given on their site) on thingworx but not able to do that. Please have a look on the following code to upload the data on thingworx:

import requests
import json
app_key = 'xxxx'
url = 'http://pp-1804040542ze.devportal.ptc.io/Thingworx/Things/lmtech_thing/Properties/humidity'
prms = {'appKey': app_key}
hdrs = {
    'Accept': 'application/json',
    'Content-Type': 'application/json'
}
data = {'humidiy': '20'}
text = json.dumps(data)
print 'data: ' + text
r = requests.put(url, params=prms, headers=hdrs, data=text)
print r.status_code

Have created thing and key successfully. but it always return 404 error.

Tried with postman too. Here are the screenshots as shown below: GET request is successful

POST request is giving 404

Trying to update the property (humidity) value in lmtech_thing


Solution

  • The following code worked for me :-)

    import requests  # Import requests library to send requests to Thingworx
    
    url = 'http://52.199.28.120:8080/Thingworx/Things/work_thing/Properties/temp'
    # temp is one of my property name
    value = 12    # Upload 12 on Thingworx
    
    headers = {
        'Content-Type': 'application/json',
        'appkey': 'xxxxxxxxxxxxxxxxxxxxxx',
        'Accept': 'application/json',
        'x-thingworx-session': 'true',
        'Cache-Control': 'no-cache',
    }
    
    data = {"temp": value}   # JSON data to upload on Thingworx
    
    response = requests.put(url, headers=headers, json=data)
    # Note that we have to send put request
    
    print 'Response Code:', response.status_code
    # If 200 then data has been uploaded successfully
    print 'Response Content:', response.content