Topics
All
MacOS
(Only)
Windows
(Only)
Linux
(Only, Not)
iOS
(Only, Not)
Components
Crossplatform Mac & Win
Server
Client
Old
Deprecated
Guides
Examples
Videos
New in version:
11.0
11.1
11.2
11.3
11.4
11.5
12.0
12.1
12.2
12.3
Statistic
FMM
Blog
CURL.SetOptionPostFields
Sets the post fields.
Component | Version | macOS | Windows | Linux | Server | iOS SDK |
CURL | 2.5 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
Parameters
Parameter | Description | Example | Flags |
---|---|---|---|
curl | The CURL session handle. | $curl | |
Value | The post data. | "" | |
Encoding | The text encoding for text parameter. Default is UTF-8. Possible encoding names: ANSI, ISO-8859-1, Latin1, Mac, Native, UTF-8, DOS, Hex, Base64 or Windows. More listed in the FAQ. |
"UTF8" | Optional |
Result
Returns "OK" on success.
Description
Sets the post fields.Pass a text, which should be the full data to post in an HTTP POST operation.
The plugin sets the size for you. You can overwrite it with CURL.SetOptionPostFieldSize function.
If you plan to pass a form, maybe check functions like CURL.FormAddKeyValue instead of building post fields yourself.
You can use CURL.SetOptionHTTPHeader to set the content type and other headers.
Using this function is not recommended for more than a few hundred MB of text. If you need more, better stream the data with CURL.OpenInputFile from a file.
See also COPYPOSTFIELDS option in CURL manual.
Examples
Run a generic POST request for REST or SOAP web service:
# new session
Set Variable [$curl; Value:MBS("CURL.New")]
# use stripe charge API
Set Variable [$result; Value:MBS("CURL.SetOptionURL"; $curl; "https://someURL/service")]
# set user name and password if needed:
Set Variable [$result; Value:MBS("CURL.SetOptionUserName"; $curl; "user name")]
Set Variable [$result; Value:MBS("CURL.SetOptionPassword"; $curl; "password")]
# set some additional headers, which may include custom authorization and content types:
Set Variable [$result; Value:MBS( "CURL.SetOptionHTTPHeader"; $curl; "Authorization: Bearer a92eabb9-76f9-42ee-b280-bcd15cb2e9db"; "Content-Type: application/json" )
# make a post with given content:
Set Variable [$result; Value:MBS("CURL.SetOptionPostFields"; $curl; $json]
# perform
Set Field [CURL Test::Result; MBS("CURL.Perform"; $curl)]
# now check result
Set Field [CURL Test::Text; MBS("CURL.GetResultAsText"; $curl; "UTF8")]
Set Field [CURL Test::header; MBS("CURL.GetDebugAsText"; $curl)]
# cleanup
Set Variable [$result; Value:MBS("CURL.Release"; $curl)]
Set post field with some XML for SOAP WebService:
MBS("CURL.SetOptionPostFields"; $curl; "<xml>....</xml>"; "UTF-8")
Set post fields:
MBS("CURL.SetOptionPostFields"; $curl; "first=John&last=Smith"; "UTF-8")
Build form:
MBS( "CURL.FormAddKeyValue"; $curl; "login"; "testuser" )
MBS( "CURL.FormAddKeyValue"; $curl; "password"; "xxx" )
MBS( "CURL.FormFinish"; $curl )
Charge with Stripe webservice:
# new session
Set Variable [$curl; Value:MBS("CURL.New")]
# use stripe charge API
Set Variable [$result; Value:MBS("CURL.SetOptionURL"; $curl; "https://api.stripe.com/v1/charges")]
# set user name
Set Variable [$result; Value:MBS("CURL.SetOptionUserName"; $curl; "sk_test_ your id here")]
# make a post with given content:
Set Variable [$result; Value:MBS("CURL.SetOptionPost"; $curl; 1)]
Set Variable [$result; Value:MBS("CURL.SetOptionPostFields"; $curl; "amount=400¤cy=usd&description=Charge%20for%20test@example.com&source[object]=card&source[number]=4242424242424242&source[exp_month]=12&source[exp_year]=2017&source[cvc]=123")]
# perform
Set Field [CURL Test::Result; MBS("CURL.Perform"; $curl)]
# now check result
Set Field [CURL Test::Text; MBS("CURL.GetResultAsText"; $curl; "UTF8")]
Set Field [CURL Test::header; MBS("CURL.GetDebugAsText"; $curl)]
# cleanup
Set Variable [$result; Value:MBS("CURL.Release"; $curl)]
OAuth2 Token authentication with passing credentials via POST:
Set Variable [ $Curl ; Value: MBS("CURL.New") ]
#
# Change path to your CACert PEM File.
Set Variable [ $CacertPath ; Value: "C:\Users\Public\cacert.pem" ]
// Set Variable [ $Result ; Value: MBS( "CURL.SetOptionCAInfo"; $curl; $cacertPath ) ]
// Set Variable [ $Result ; Value: MBS( "CURL.SetOptionSSLVerifyHost"; $curl; 2 ) ]
// Set Variable [ $Result ; Value: MBS( "CURL.SetOptionSSLVerifyPeer"; $curl; 1 ) ]
Set Variable [ $Result ; Value: MBS("CURL.SetOptionVerbose"; $curl; 1) ]
#
# credentials
Set Variable [ $secret ; Value: "xxx" ]
Set Variable [ $client ; Value: "yyy" ]
Set Variable [ $domain ; Value: "zzz" ]
Set Variable [ $Result ; Value: MBS("CURL.SetOptionURL"; $curl; "https://" & $domain & "/auth/realms/demo/protocol/openid-connect/token") ]
#
# POST with form encoding
Set Variable [ $result ; Value: MBS("CURL.SetOptionHTTPHeader"; $curl; "content-type: application/x-www-form-urlencoded") ]
Set Variable [ $Result ; Value: MBS("CURL.SetOptionPostFields"; $curl; "grant_type=client_credentials&client_id="& $client & "&client_secret=" & $secret) ]
#
# run it
Set Variable [ $Result ; Value: MBS("CURL.Perform"; $curl) ]
Set Variable [ $DebugText ; Value: MBS("CURL.GetDebugAsText"; $curl) ]
Set Variable [ $ResultText ; Value: MBS("CURL.GetResultAsText"; $curl) ]
If [ $result = "OK" ]
# extract token
Set Variable [ $Token ; Value: JSONGetElement ( $ResultText; "access_token" ) ]
Set Field [ tbl_debugger::token ; $Token ]
End If
Set Field [ tbl_debugger::header ; $DebugText ]
Set Variable [ $Result ; Value: MBS("CURL.Release"; $curl) ]
See also
- CURL.GetOptionPostFields
- CURL.SetOptionCookieList
- CURL.SetOptionPost
- CURL.SetOptionPostQuote
- CURL.SetOptionProtocols
- CURL.SetOptionSSLCert
- CURL.SetOptionSSLKey
- CURL.SetOptionSSLVerifyHost
- CURL.SetOptionSSLVerifyPeer
- CURL.SetOptionURL
Release notes
- Version 10.4
- Fixed an issue with CURL.SetOptionPostFields to accept > 8 MB in size of post data.
Example Databases
- CURL/Amazon S3 Upload File
- CURL/WebServices/AdobeSign WebService
- CURL/WebServices/CURL FMS Admin API v18
- CURL/WebServices/ebay webservice/ebay Webservice
- CURL/WebServices/magento older
- CURL/WebServices/Magento2 REST API
- CURL/WebServices/Sales Force Test
- CURL/WebServices/Swiss Post Addresscheck V4-02-00
- CURL/WebServices/Swiss Post Addresscheck
- CURL/WebServices/Twilio API Send SMS Json
Blog Entries
- MBS FileMaker Plugin, version 10.4pr9
- Using Apple's Global Service Exchange web service in FileMaker
- Let CURL handle cookie list
- Using Apple's Global Service Exchange web service in FileMaker
- Swiss Post Webservice to verify addresses
- Using CURL with Rosette web service
- Translate PHP script with CURL to FileMaker Script
FileMaker Magazin
Created 18th August 2014, last changed 22nd June 2021
CURL.SetOptionPostFieldSize - CURL.SetOptionPostQuote
Feedback: Report problem or ask question.
