User Tools

Site Tools


docu_http

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
docu_http [2018/08/09 15:55]
Niek [Options for POST]
docu_http [2018/08/11 14:12]
Niek New version with DEVICE
Line 1: Line 1:
-=====Send an http(s) GET or POST request=====+=====Send an http(s) GET or POST request ​and receive response in a generic_label=====
  
 ====Options for GET==== ====Options for GET====
- 
-|<100% 50px 50px 50px 200px>| 
-^Name^Required^Multiple Values^Description^ 
 |GET|yes|no|The url for a GET request| |GET|yes|no|The url for a GET request|
 +|DEVICE|yes|no|A generic_label device to receive the response|
 +
 ====Options for POST==== ====Options for POST====
  
Line 13: Line 12:
 |DATA|yes|no|A parameterstring required for a POST request| |DATA|yes|no|A parameterstring required for a POST request|
 |MIMETYPE|yes|no|The mimetype required for a POST request| |MIMETYPE|yes|no|The mimetype required for a POST request|
 +|DEVICE|yes|no|A generic_label device to receive the response|
 +
 +====Description====
 +
 +The http action can perform hhp(s) GET and POST requests. It requires a generic_label device to store the response of the request. The label- and color fields of the label device are respectively being used to store the received data and the corresponding code, size and mimetype. ​
 +
 +While the http request in in progress, the color field is set to "​busy"​. **During that time any new http request for the same device will be skipped.**
 +
 +When the http action completes the new response data is stored in the label field and the color is set to the code size and mimetype of the response.
 +
 +Because the color first changes to "​busy"​ and then, when the request finishes, to response code, size and mimetype, the color can be used to trigger other rules. ​
 +
 +Typically, after a succesfull request, the label will look something like this: 
 +
 +<​code>​
 + "​mylabel":​ {
 + ​ "​protocol":​ [ "​generic_label"​ ],
 + ​ "​id":​ [{
 + ​ "​id":​ 1
 +  }],
 + "​label":​ "hello world",​
 + ​ "​color":​ "​code=200&​size=11&​mimetype=text/​plain"​
 + },
 +</​code>​
 +
 +The label field always contains the data received from the latest successfull request. So, suppose the next request would time out, the label will look like this:
 +
 +<​code>​
 + "​mylabel":​ {
 + ​ "​protocol":​ [ "​generic_label"​ ],
 + ​ "​id":​ [{
 + ​ "​id":​ 1
 +  }],
 + "​label":​ "hello world",​
 + ​ "​color":​ "​code=408&​size=0"​
 + },
 +</​code>​
 +
 +The code, size and mimetype can be individually extracted using the [[docu_extract| EXTRACT]] function like this:
 +
 +<​code>​
 +EXTRACT(mylabel.color,​ code) returns code
 +EXTRACT(mylabel.color,​ size) returns size
 +EXTRACT(mylabel.color,​ mimetype) returns mimetype (if present)
 +</​code>​
 +
  
 ====Examples==== ====Examples====
  
 <​code>​ <​code>​
-   IF 1 == 1 THEN http GET '​http://​www.somewebsite.com/'​+   IF 1 == 1 THEN http GET '​http://​www.somewebsite.com/' ​DEVICE mylabel 
 + 
 +   IF 1 == 1 THEN http GET '​http://​www.somewebsite.com/'​ DEVICE mylabel 
 + 
 +   IF 1 == 1 THEN http GET '​https://​www.somewebsite.com/?​command=show&​format=xml'​ DEVICE mylabel
        
-   IF 1 == 1 THEN http GET 'https://​www.somewebsite.com/' ​PARAM '​command=show&​format=xml+   IF 1 == 1 THEN http POST 'http://​www.somewebsite.com/' ​DATA '​command=show&​format=xml'​ MIMETYPE '​text/​plain' ​DEVICE mylabel 
-    + 
-   IF 1 == 1 THEN http POST '​http://​www.somewebsite.com/'​ PARAM '​command=show' MIMETYPE '​text/​plain'​ +   IF 1 == 1 THEN http GET '​http://​192.168.1.1/​myserver/' ​DEVICE mylabel 
-   ​ +</​code>​ 
-   IF 1 == 1 THEN http GET '​http://​192.168.1.1/​myserver/' ​+ 
 +Other rules can be triggered using the change of the color field: 
 + 
 +<​code>​ 
 +   IF mylabel.color != busy THEN label mylabel2 TO 'The http action has finished'​  
 + 
 +   IF mylabel.color != busy THEN label mylabel2 TO 'The code is ' . EXTRACT(mylabel.color,​ code) 
 </​code>​ </​code>​
  
docu_http.txt · Last modified: 2018/08/18 11:35 by Niek