FileMaker supports some of the protocols and options included with cURL. FileMaker gets rid of the somewhat unconventional httppost/httpspost protocol that exists in earlier versions and now supports http, https, ftp, ftps, and file protocols. It has been possible to use cURL in prior versions of FileMaker with the help of plugins like MBS and BaseElements, and you may still need to look to these plugins for advanced use cases requiring options that aren’t supported natively. Rudimentary cURL has been possible natively with Insert From URL script step since it was introduced in FileMaker 12. Two big changes in FileMaker version 16 brought an increase to its capabilities:
1. Variables. It is now possible to set the response of a URL request to variable. Previously, “Insert From URL” only allowed a field to be set which so often required defining unnecessary schema and user interface manipulation for something that really should just happen in a script. Allowing a variable to be defined and within a single “Insert From URL” script will reduce overhead while improving efficiency, readability, and interoperability. Variables can also be used to refer to files stored in container fields or filesystems–more on that in a bit.
2. cURL options. The last parameter supplied to the new and improved Insert From URL, Specify cURL options, is where the magic happens. If you’re familiar with cURL on the command line you’ll quickly grasp how this works but if you’re new to cURL there’s a bit of a learning curve. In short, Specify cURL options allows you to supply a string of options (and sometimes values) that provide instructions as to how to construct a URL request, what to include in the data payload, and how to handle results and errors. Unfortunately FileMaker supports only a subset of libcurl options so be sure to refer to FileMaker’s Supported cURL options help page for details (unsupported options are ignored).