Не удалось загрузить данные на thingworx через API

Пробовал много способов загрузить данные (почтальон, httpie и т. д., как указано на их сайте) на thingworx, но не смог этого сделать. Пожалуйста, взгляните на следующий код для загрузки данных на 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

Создали вещь и ключ успешно. но он всегда возвращает ошибку 404.

Пробовал и с почтальоном. Вот скриншоты, как показано ниже: GET-запрос выполнен успешно

Запрос POST дает 404

Попытка обновить значение свойства (влажности) в lmtech_thing


person Prasad    schedule 10.04.2018    source источник
comment
Журнал приложений что-нибудь показывает? Журнал обычно содержит более подробную информацию об ошибке.   -  person Andrew Drake    schedule 10.04.2018
comment
Здравствуйте, передайте appKey как часть заголовка (добавьте две строки: 'appKey': 'yourAppKey' 'x-thingworx-session': true С наилучшими пожеланиями   -  person Carles Coll    schedule 10.04.2018
comment
Пожалуйста, посмотрите на скриншот почтальона.   -  person Prasad    schedule 11.04.2018
comment
Я считаю, что доступ к облачной платформе Thingworx возможен только безопасным образом. Пробовали ли вы использовать https в URL-адресе?   -  person Unni Kris    schedule 12.04.2018
comment
Также для этого потребуется, чтобы ваш запрос был подписан самозаверяющим сертификатом.   -  person Unni Kris    schedule 12.04.2018
comment
Спасибо за поддержку. Понятно.   -  person Prasad    schedule 13.04.2018


Ответы (1)


У меня сработал следующий код :-)

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
person Prasad    schedule 13.04.2018