Send Binary Using REST
BASE_URL = http(s)://your_host_or_ip/api
HTTP File Upload
- Endpoint: ${BASE_URL}/push/bin/file/{dkey}/{akey}/{did}/{dmdl}/{fwver}/{type }
- type is the binary rule name
- Content-Type: multipart/form-data
- Method: POST
- File Form Parameter: binfile
curl --request POST \
--url https://your_host_or_ip/api/push/bin/file/your_domain_key/your_api_key/your_device_id/device_model/fw_version/your_binary_rule \
--header 'accept: application/json' \
--header 'content-type: multipart/form-data' \
--data '{"binfile":"data:application/json;name=message.json;base64,eyJsYXRpdHVkZSI6MzIuNzc5MTY3LCJsb25naXR1ZGUiOi05Ni44MDg4OTEsInRlbXBlcmF0dXJlIjoyNiwiaHVtaWRpdHkiOjc3LCJwcmVjaXBpdGF0aW9uIjowLCJ3aW5kIjoxMX0K"}'
var request = require("request");
var options = {
method: 'POST',
url: 'https://your_host_or_ip/api/push/bin/file/your_domain_key/your_api_key/your_device_id/device_model/fw_version/your_binary_rule',
headers: {accept: 'application/json', 'content-type': 'multipart/form-data'},
body: '{"binfile":"data:application/json;name=message.json;base64,eyJsYXRpdHVkZSI6MzIuNzc5MTY3LCJsb25naXR1ZGUiOi05Ni44MDg4OTEsInRlbXBlcmF0dXJlIjoyNiwiaHVtaWRpdHkiOjc3LCJwcmVjaXBpdGF0aW9uIjowLCJ3aW5kIjoxMX0K"}'
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://your_host_or_ip/api/push/bin/file/your_domain_key/your_api_key/your_device_id/device_model/fw_version/your_binary_rule")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new(url)
request["accept"] = 'application/json'
request["content-type"] = 'multipart/form-data'
request.body = "{\"binfile\":\"data:application/json;name=message.json;base64,eyJsYXRpdHVkZSI6MzIuNzc5MTY3LCJsb25naXR1ZGUiOi05Ni44MDg4OTEsInRlbXBlcmF0dXJlIjoyNiwiaHVtaWRpdHkiOjc3LCJwcmVjaXBpdGF0aW9uIjowLCJ3aW5kIjoxMX0K\"}"
response = http.request(request)
puts response.read_body
var data = "{\"binfile\":\"data:application/json;name=message.json;base64,eyJsYXRpdHVkZSI6MzIuNzc5MTY3LCJsb25naXR1ZGUiOi05Ni44MDg4OTEsInRlbXBlcmF0dXJlIjoyNiwiaHVtaWRpdHkiOjc3LCJwcmVjaXBpdGF0aW9uIjowLCJ3aW5kIjoxMX0K\"}";
var xhr = new XMLHttpRequest();
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("POST", "https://your_host_or_ip/api/push/bin/file/your_domain_key/your_api_key/your_device_id/device_model/fw_version/your_binary_rule");
xhr.setRequestHeader("accept", "application/json");
xhr.setRequestHeader("content-type", "multipart/form-data");
xhr.send(data);
import requests
url = "https://your_host_or_ip/api/push/bin/file/your_domain_key/your_api_key/your_device_id/device_model/fw_version/your_binary_rule"
payload = "{\"binfile\":\"data:application/json;name=message.json;base64,eyJsYXRpdHVkZSI6MzIuNzc5MTY3LCJsb25naXR1ZGUiOi05Ni44MDg4OTEsInRlbXBlcmF0dXJlIjoyNiwiaHVtaWRpdHkiOjc3LCJwcmVjaXBpdGF0aW9uIjowLCJ3aW5kIjoxMX0K\"}"
headers = {
'accept': "application/json",
'content-type': "multipart/form-data"
}
response = requests.request("POST", url, data=payload, headers=headers)
print(response.text)
HTTP Encoded Data Posting
- Endpoint: ${BASE_URL}/push/bin/data/{dkey}/{akey}/{did}/{dmdl}/{fwver}/{type }
- type is the binary rule name
- Query Parameters
- format
- Allowed values (TEXT | HEX | BASE64)
- If you want to upload a byte array, use one of HEX or BASE64 encoding
- Allowed values (TEXT | HEX | BASE64)
- contentType
- Standard file content types like below
- image/jpg
- text/plain
- application/octet-stream
- format
- Content-Type: text/plain
- Method: POST
- Body: Your data as plain string or encoded HEX or BASE64 binary data
curl --request POST \
--url 'https://your_host_or_ip/api/push/bin/data/your_domain_key/your_api_key/your_device_id/device_model/fw_version/your_binary_rule?format=BASE64&contentType=application%2Fjson' \
--header 'accept: application/json' \
--header 'content-type: text/plain' \
--data '"ew0KICAibGF0aXR1ZGUiOiAzMi43NzkxNjcsDQogICJsb25naXR1ZGUiOiAtOTYuODA4ODkxLA0KICAidGVtcGVyYXR1cmUiOiAyNiwNCiAgImh1bWlkaXR5IjogNzcsDQogICJwcmVjaXBpdGF0aW9uIjogMCwNCiAgIndpbmQiOiAxMQ0KfQ=="'
var request = require("request");
var options = {
method: 'POST',
url: 'https://your_host_or_ip/api/push/bin/data/your_domain_key/your_api_key/your_device_id/device_model/fw_version/your_binary_rule',
qs: {format: 'BASE64', contentType: 'application/json'},
headers: {accept: 'application/json', 'content-type': 'text/plain'},
body: '"ew0KICAibGF0aXR1ZGUiOiAzMi43NzkxNjcsDQogICJsb25naXR1ZGUiOiAtOTYuODA4ODkxLA0KICAidGVtcGVyYXR1cmUiOiAyNiwNCiAgImh1bWlkaXR5IjogNzcsDQogICJwcmVjaXBpdGF0aW9uIjogMCwNCiAgIndpbmQiOiAxMQ0KfQ=="'
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://your_host_or_ip/api/push/bin/data/your_domain_key/your_api_key/your_device_id/device_model/fw_version/your_binary_rule?format=BASE64&contentType=application%2Fjson")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new(url)
request["accept"] = 'application/json'
request["content-type"] = 'text/plain'
request.body = "\"ew0KICAibGF0aXR1ZGUiOiAzMi43NzkxNjcsDQogICJsb25naXR1ZGUiOiAtOTYuODA4ODkxLA0KICAidGVtcGVyYXR1cmUiOiAyNiwNCiAgImh1bWlkaXR5IjogNzcsDQogICJwcmVjaXBpdGF0aW9uIjogMCwNCiAgIndpbmQiOiAxMQ0KfQ==\""
response = http.request(request)
puts response.read_body
var data = "\"ew0KICAibGF0aXR1ZGUiOiAzMi43NzkxNjcsDQogICJsb25naXR1ZGUiOiAtOTYuODA4ODkxLA0KICAidGVtcGVyYXR1cmUiOiAyNiwNCiAgImh1bWlkaXR5IjogNzcsDQogICJwcmVjaXBpdGF0aW9uIjogMCwNCiAgIndpbmQiOiAxMQ0KfQ==\"";
var xhr = new XMLHttpRequest();
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("POST", "https://your_host_or_ip/api/push/bin/data/your_domain_key/your_api_key/your_device_id/device_model/fw_version/your_binary_rule?format=BASE64&contentType=application%2Fjson");
xhr.setRequestHeader("accept", "application/json");
xhr.setRequestHeader("content-type", "text/plain");
xhr.send(data);
import requests
url = "https://your_host_or_ip/api/push/bin/data/your_domain_key/your_api_key/your_device_id/device_model/fw_version/your_binary_rule"
querystring = {"format":"BASE64","contentType":"application/json"}
payload = "\"ew0KICAibGF0aXR1ZGUiOiAzMi43NzkxNjcsDQogICJsb25naXR1ZGUiOiAtOTYuODA4ODkxLA0KICAidGVtcGVyYXR1cmUiOiAyNiwNCiAgImh1bWlkaXR5IjogNzcsDQogICJwcmVjaXBpdGF0aW9uIjogMCwNCiAgIndpbmQiOiAxMQ0KfQ==\""
headers = {
'accept': "application/json",
'content-type': "text/plain"
}
response = requests.request("POST", url, data=payload, headers=headers, params=querystring)
print(response.text)
HTTP Complex JSON Posting
- This is just a convenient API to push a complex JSON object, you could use the file upload API to achieve the same result
- Endpoint: ${BASE_URL}/push/bin/json/{dkey}/{akey}/{did}/{dmdl}/{fwver}/{type }
- type is the binary rule name
- Content-Type: application/json
- Method: POST
- Body: Your JOSN Object
curl --request POST \
--url 'https://your_host_or_ip/api/push/bin/json/your_domain_key/your_api_key/your_device_id/device_model/fw_version/your_binary_rule' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{"latitude":32.779167,"longitude":-96.808891,"temperature":26,"humidity":77,"precipitation":0,"wind":11}'
var request = require("request");
var options = {
method: 'POST',
url: 'https://your_host_or_ip/api/push/bin/json/your_domain_key/your_api_key/your_device_id/device_model/fw_version/your_binary_rule',
headers: {accept: 'application/json', 'content-type': 'application/json'},
body: '{"latitude":32.779167,"longitude":-96.808891,"temperature":26,"humidity":77,"precipitation":0,"wind":11}'
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://your_host_or_ip/api/push/bin/json/your_domain_key/your_api_key/your_device_id/device_model/fw_version/your_binary_rule")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new(url)
request["accept"] = 'application/json'
request["content-type"] = 'application/json'
request.body = "{"latitude":32.779167,"longitude":-96.808891,"temperature":26,"humidity":77,"precipitation":0,"wind":11}"
response = http.request(request)
puts response.read_body
var data = "{"latitude":32.779167,"longitude":-96.808891,"temperature":26,"humidity":77,"precipitation":0,"wind":11}";
var xhr = new XMLHttpRequest();
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("POST", "https://your_host_or_ip/api/push/bin/json/your_domain_key/your_api_key/your_device_id/device_model/fw_version/your_binary_rule");
xhr.setRequestHeader("accept", "application/json");
xhr.setRequestHeader("content-type", "application/json");
xhr.send(data);
import requests
url = "https://your_host_or_ip/api/push/bin/json/your_domain_key/your_api_key/your_device_id/device_model/fw_version/your_binary_rule"
payload = "{"latitude":32.779167,"longitude":-96.808891,"temperature":26,"humidity":77,"precipitation":0,"wind":11}"
headers = {
'accept': "application/json",
'content-type': "application/json"
}
response = requests.request("POST", url, data=payload, headers=headers)
print(response.text)
Updated about 5 years ago