Start HTTP Server |
Starts the built-in HTTP Server. This web server will trigger a script when data arrives.
Syntax
Start HTTP Server [ Select ; Result (error) ; File name ; Script name ;
Password ; Port number ; Server Name ; Switches ]
Options
Select entire contents | replaces the entire contents of a field with the result. If not checked the result replaces the currently selected portion of the field |
Result (error) | an error code |
File name | the name of the file which contains the script to trigger when a HTTP request arrives |
Script name | specifies the name of the script to trigger when a HTTP request arrives |
Password | (optional) a password which the sender needs to add to the HTTP request |
Port number | (optional) use the specified portnumber, if you leave this empty the default port number of the Activator is used (TCP port 54242) |
Server name | (optional, macOS only) the name of the SSL Certificate and server in the keychain |
Switches | (optional) Switches modify the behavior of this step |
Switches
You can add these switches:
-AllowAnyPostedText | allow any text to be posted to the url "/posttext.html" |
-RunSecureServer | starts a Secure (HTTPS) Server. |
Returned Result
Data type returned
Error code
Result
The returned result is an error code. An error always starts with 2 dollars, followed by the error code. You should always check for errors. Returned error codes can be:
0 | no error | |
$$-50 | paramErr | there was an error with a parameter |
$$-4228 | kErrPortNrOutOfRange | the port number is out of range |
$$-4407 | kErrSSLCertificateNotFound | the SSL Certificate could not be found |
$$-4408 | kErrSSLPrivateKeyNotFound | the Private Key for this SSL Server could not be found |
$$-4409 | kErrNotImplementedOn32bit | the Secure (HTTPS) Server functionality is not available when running on a 32-bit version of FileMaker |
Other errors may be returned.
Originated in
Activator Plug-in 4.5
Compatibility
FileMaker Pro 17 to 2023
Considerations
Only HTTP requests which are posted to the right web page will trigger the script. Other requests (for example for the index.html page) do not trigger a script but a default web page will be returned to the remote client.
Remote clients can trigger a script with a URL like this:
http://www.example.com:54242/triggerscript.html?yourText=someText
See the ‘Set HTTP Response’ script step and the HTTPResponse.fmp12 example file for more detailed information on how to send a custom response.
When the URL contains a password parameter, the password will be removed from the result returned by
Actr_GetEventInfo ("-GetURL" ; $EeventID)
This script step also lets the Activator Plug-in act as an Image Upload Server. See the UploadData.fmp12 example file for more detailed information. You can also send text only to the plug-in.
To upload text posted to the url “/posttext.html” you need to wrap it in tags like this:
<TROI_TEXT_UTF8>
your UTF8 formatted text
</TROI_TEXT_UTF8>
New for v8.0: If you want to allow allow any text to be uploaded to the upload server add the switch “-AllowAnyPostedText” when starting the server.
New for v9.0: by adding the switch “-RunSecureServer” you can now start a Secure (HTTPS) Server. Note that for running a secure server you need to install a SSL Certificate. This can be a self signed certificate for testing purposes.
For HTTPS you may want to specify port number 443, which is the default port number for HTTPS as defined by the Internet Engineering Task Force. This port may already be in use by another web server on your computer.
On macOS you can specify the name of the SSL Certificate with the (optional) Server name parameter. If serverName is empty the plug-in will use “HTTPS_Server_TroiActivatorPlugin” as Server name.
The Secure Server (HTTPS) functionality is not available when running on a 32-bit version of FileMaker Pro.
On macOS the plug-in will make the HTTP server known via Bonjour as “Troi Activator Upload Server”, allowing for easy discovery.
When you are hosting files for WebDirect: see the WebDirect_UploadImage.fmp12 example file.
Example
Start HTTP Server [ Select ; Result ; "Upload.fmp12" ;
"HTTP_TriggerScript" ; "secret" ]
This command starts the HTTP Server. When (image) data comes in, it will trigger the script “HTTP_TriggerScript” in file “Upload.fmp12”. Note that this example is somewhat simplified, normally you should not use a hard coded filename like in the above example.
Example 2
Add the following script steps:
Set Variable [ $Password ; "secret" ]
Set Variable [ $Switches ; "-RunSecureServer" ]
Start HTTP Server [ Select ; Result ; Get ( FileName ) ;
"HTTP_TriggerScript" ; $Password ; 12345; "Acme Inc Server" ; $Switches ]
This command will start a Secure (HTTPS) Server, with the server listening on port 12345. Users can now securely send images or text data from other computers or for example an iPhone or iPad.
Used in example files
UploadData.fmp12
HTTPResponse.fmp12
WebDirect_UploadImage.fmp12
Related script steps
Set HTTP Response |
Stop HTTP Server |
Related functions
Actr_GetEventInfo |
Actr_StartHTTPServer |
Related topics
Activator Plug-in online help (overview)