Options cURL prises en charge

cURL (Client pour URL) est une bibliothèque de normes ouvertes qui contient des fonctions logicielles permettant à l'action de script Insérer depuis URL de prendre en charge de nombreuses options habituelles pour le transfert de fichier. Dans cette action de script, utilisez Définir les options cURL pour créer un calcul qui intègre une ou plusieurs des options cURL suivantes.

Remarque  Dans les options cURL, insérez une barre oblique inversée devant chaque guillemet. Par exemple, pour indiquer un en-tête HTTP pour Content-type: application/json, l'expression texte pour Définir les options cURL est :

"--header \"Content-type: application/json\""

Seules les options répertoriées ci-dessous sont prises en charge par les clients FileMaker. Pour plus d'informations, consultez la documentation de cURL.

Option1 Paramètre2 Remarques

--anyauth

 

 

--basic

 

 

--cert

-E

<$[$]fmvariable[:password]>

Indiquez le fichier de certificat client3 à utiliser avec HTTPS, FTPS ou un autre protocole basé sur SSL. Ajoutez :[password] pour spécifier une phrase de passe pour le certificat client.

Cette option suppose qu'un fichier de certificat dispose de la clé privée et du certificat client concaténés. Utilisez --key et --pass pour les spécifier de façon indépendante.

--cert-type

<type>

Indiquez le type de certificat client. Les types PEM, DER et P12 sont pris en charge. Si le type n'est pas spécifié, PEM est utilisé.

--ciphers

<list of ciphers>

 

--connect-timeout

<seconds>

Indiquez un nombre décimal de secondes.

--continue-at

-C

<offset>

L'utilisation de « - » pour la taille du fichier actif n'est pas autorisée. Les données remplacent les cibles binaires et ne s'y ajoutent pas.

--cookie

-b

<name=data[;n2=d2]> ou <$[$]fmvariable>

Voir la remarque 3.

--cookie-jar

-c

<$[$]fmvariable>

L'accès direct au fichier et « - » sont remplacés par une variable FileMaker.

--crlf

 

 

--data

-d

<data> ou @<$[$]fmvariable>

Voir la remarque 4.

--data-ascii

<data> ou @<$[$]fmvariable>

Voir la remarque 4.

--data-binary

<data> ou @<$[$]fmvariable>

Voir la remarque 4.

--data-raw

<data>

 

--data-urlencode

<data> ou =<data> or @<$[$]fmvariable> ou <name>=<data> ou <name>@<$[$]fmvariable>

Voir la remarque 4.

--digest

 

 

--disable-eprt

 

 

--disable-epsv

 

 

--dump-header

-D

<$[$]fmvariable>

Voir la remarque 3.

--expect100-timeout

<seconds>

Indiquez un nombre décimal de secondes.

--fail

-f

 

 

--FM-return-container-variable

 

Lorsque l'action de script Insérer depuis URL cible une variable, utilisez cette option pour forcer le stockage des données renvoyées sous forme de données de conteneur.

--FM-text-encoding

<encoding>

Convertit du texte dans les options qui suivent immédiatement cette option, d'un codage de caractères interne à FileMaker au codage spécifié. Utilisez l'un des noms définis pour le paramètre encoding de la fonction TextEncode.

--form

-F

<name=content> ou <name=@$[$]fmvariable>

Voir la remarque 4.

--form-string

<name=content>

 

--ftp-alternative-to-user

<command>

 

--ftp-create-dirs

 

 

--ftp-method

multicwd, nocwd ou singlecwd

Indiquez l'une de ces méthodes.

--ftp-pasv

 

 

--ftp-port

-P

<interface> ou <IP address> ou <host name> ou -

Ajoutez :[start]-[end] pour indiquer une plage de ports.

--ftp-pret

 

 

--ftp-skip-pasv-ip

 

 

--ftp-ssl-ccc

 

Définit également --ftp-ssl-ccc-mode sur passive, si ce n'est pas déjà fait.

--ftp-ssl-ccc-mode

active ou passive

Indiquez l'un de ces modes.

--ftp-ssl-control

 

 

--head

-I

 

 

--header

-H

<name: value>

Utilisez cette option une fois pour chaque en-tête que vous spécifiez.

--ignore-content-length

 

 

--interface

<name>

 

--ipv4

-4

 

 

--ipv6

-6

 

 

--junk-session-cookies

-j

 

 

--keepalive-time

<seconds>

Indiquez un nombre entier de secondes.

--key-type

<type>

Indiquez le type de fichier de clé privée. Les types DER et PEM sont pris en charge. Si le type n'est pas spécifié, PEM est utilisé.

--key

<$[$]fmvariable>

Indiquez le fichier de clé privée3. Utilisez cette option si vous devez fournir la clé privée indépendamment du fichier de certificat.

--limit-rate

<speed[b|B|k|K|m|M|g|G]>

Indiquez un entier suivi d'une unité facultative.

--list-only

-l

 

 

--local-port

<num>[-num]

Indiquez un port ou une plage de ports.

--location

-L

 

 

--location-trusted

 

 

--mail-auth

<address>

 

--mail-from

<address>

 

--mail-rcpt

<address>

 

--max-filesize

<bytes>

 

--max-time

-m

<seconds>

Indiquez un nombre décimal de secondes.

--no-compressed

 

Par défaut, une réponse compressée est demandée. Utilisez cette option pour les désactiver.

--no-keepalive

 

Par défaut, les messages keepalive sont activés. Utilisez cette option pour les désactiver.

--noproxy

<host[,host]> ou *

 

--output

-o

<filename>

Le nom du fichier sert uniquement d'attribut pour les données Conteneur.

--pass

<phrase>

Phrase de passe de la clé privée. Utilisez cette option si vous devez fournir la phrase de passe de la clé privée indépendamment du fichier de certificat.

--path-as-is

 

 

--post301

 

 

--post302

 

 

--post303

 

 

--proxy

-x

<[protocol://][user:password@]proxyhost[:port]>

 

--proxy-anyauth

 

 

--proxy-basic

 

 

--proxy-digest

 

 

--proxy-header

<name: value>

Utilisez cette option une fois pour chaque en-tête que vous spécifiez.

--proxy-user

-U

<user:password>

A la différence de l'outil de ligne de commande curl, si aucun mot de passe n'existe, les clients FileMaker ne le demandent pas à l'utilisateur.

--proxy1.0

<proxyhost[:port]>

 

--proxytunnel

-p

 

 

--pubkey

<publickeyfile>

Indiquez le fichier de clé publique à utiliser avec le protocole SFTP. Utilisez --key et --pass pour indiquer la clé privée et la phrase de passe de la clé privée de manière indépendante.

--quote

-Q

<command>

Utilisez cette option une fois pour chaque commande au serveur FTP.

--range

-r

<range>

 

--raw

 

 

--referer

-e

<URL>

Prend en charge ;auto à la fin de l'URL lorsque utilisé avec --location.

--request

-X

<command>

 

--resolve

<host:port:address>

Utilisez cette option une fois pour chaque critère resolve que vous spécifiez.

--show-error

-S

 

Consultez la section Gestion des erreurs.

--socks4

<host[:port]>

 

--socks4a

<host[:port]>

 

--socks5

<host[:port]>

 

--socks5-hostname

<host[:port]>

 

--speed-limit

-Y

<speed>

Indiquez un nombre entier d'octets par seconde.

--speed-time

-y

<time>

Indiquez un nombre entier de secondes.

--ssl

 

--ftp-ssl est également pris en charge.

--ssl-reqd

 

--ftp-ssl-reqd est également pris en charge.

--time-cond

-z

<date expression>

N'accepte que l'écriture d'une expression de date de style cURL.

--tr-encoding

 

 

--trace

<$[$]fmvariable>

Voir la remarque 3.

--trace-ascii

<$[$]fmvariable>

Voir la remarque 3.

--trace-time

 

 

--upload-file

-T

<$[$]fmvariable>

Voir la remarque 3. Ne prend pas en charge l'indication de noms de fichier qui suivent un modèle. Pour FTP et FTPS, le nom du fichier après l'upload sur le serveur sera identique à celui spécifié à la fin de l'URL. Pour tous les autres protocoles pris en charge, le nom du fichier est identique à celui spécifié dans les données de conteneur : tout nom de fichier dans l'URL est ignoré.

--use-ascii

-B

 

 

--user

-u

<user:password>

A la différence de l'outil de ligne de commande curl, si aucun mot de passe n'existe, les clients FileMaker ne le demandent pas à l'utilisateur.

--user-agent

-A

<agent string>

 

--version

-V

 

Affiche des informations sur la version de la bibliothèque cURL (libcurl). La première ligne indique la version complète de libcurl et d'autres bibliothèques tierces associées. La deuxième ligne (commençant par "Features:") répertorie les fonctions libcurl prises en charge.

Notes

  1. Pour certaines options, les formes longues et courtes du nom sont prises en charge (par exemple, ‑‑data et -d).

  2. Les parties facultatives des paramètres se trouvent entre crochets [ ].

  3. L'accès direct au fichier est remplacé par une variable FileMaker.

  4. L'accès direct au fichier est remplacé par une variable FileMaker précédée du caractère @.

Utilisation de variables

Bien qu'aucune des options prises en charge ne vous permet d'accéder directement aux fichiers ou d'en créer dans le système de fichiers, vous pouvez indiquer une variable FileMaker en tant que source ou destination des données demandées par l'option. Pour accéder à un fichier ou en créer un, vous pouvez définir la variable vers une rubrique Conteneur.

Pour accéder à un fichier, définissez la variable vers une rubrique Conteneur (celle-ci contenant le fichier), puis utilisez cette variable en tant que paramètre de l'option cURL.

Pour créer un fichier, utilisez une variable en tant que paramètre de l'option cURL, définissez une rubrique Conteneur vers cette variable, puis exportez la rubrique Conteneur en tant que fichier.

Gestion des erreurs

Les options cURL non prises en charge sont ignorées.

Si vous utilisez l'option --show-error :

  • Quand les erreurs renvoyées par la bibliothèque cURL forcent les clients FileMaker à renvoyer un code d'erreur de 1631 via la fonction Obtenir ( DernièreErreur ) pour indiquer un échec de connexion non spécifié, la fonction Obtenir ( DétailDernièreErreur ) renvoie le même texte que celui renvoyé par l'outil de ligne de commande curl.

  • Quand une opération aboutit mais que le serveur renvoie un code réponse de 400 ou plus avec les données, les clients FileMaker renvoient un code d'erreur approprié. Si aucun code d'erreur FileMaker ne semble approprié, Obtenir ( DernièreErreur ) renvoie 1631 et Obtenir ( DétailDernièreErreur ) renvoie le code réponse sous la forme "Response code: nnn."

Si vous n'utilisez pas l'option --show-error, un code de réponse serveur de 401 force Obtenir ( DernièreErreur ) à renvoyer le code d'erreur FileMaker de 1627 (« échec de l'authentification »). Tous les autres codes de réponse renvoient un code d'erreur FileMaker de 0 (« aucune erreur »).

Exemple

Envoie des données HTTPS POST sous forme de deux paires clé-valeur, fname=Bob et lname=Smith à exemple.com en utilisant les informations d'identification myusername et mypassword et stocke les données requises dans la variable $$results.

Dans l'action de script Insérer depuis URL :

  • Définissez Cible sur la variable appelée $$results.

  • Définissez Spécifier URL sur https://exemple.com/.

  • Configurez Définir les options cURL sur l'un des jeux d'options équivalents suivants :

    "--user myusername:mypassword --data fname=Bob&lname=Smith"
    "--user myusername:mypassword -d fname=Bob --data-ascii lname=Smith"
    "--user myusername:mypassword -d @$post_data"

    où la variable $post_data est définie sur des paires clé-valeur en tant que texte ou sur une rubrique Conteneur dont le contenu est un fichier texte contenant des paires clé-valeur.

Ce script montre l'exemple ci-dessus envoyant des paires clé-valeur depuis un fichier dans la rubrique Conteneur post_data.

Copier
Définir variable [ $post_data ; table::post_data ]
Insérer depuis URL [Avec boîte de dialogue : Non ; Cible : $$results ; 
"https://exemple.com/" ; Vérifier les certificats SSL ; 
Options cURL : "--user myusername:mypassword -d @$post_data" ]