支持的 cURL 选项

cURL(URL 客户端)是一种开放标准的软件功能库,允许通过从 URL 插入脚本步骤支持多个常规文件传输选项。在此脚本步骤中,使用“指定 cURL 选项”可创建包含以下一个或多个 cURL 选项的计算。

只有以下列出的选项受 FileMaker 客户端的支持。有关更多信息,请参阅 cURL 文档

 

选项1

参数2

注释

--anyauth

 

 

--basic

 

 

--ciphers

<密码列表>

 

--connect-timeout

<秒>

指定秒的小数。

--continue-at
-C

<偏移>

不支持在当前文件大小中使用“-”。数据替换、未附加到、二进制目标。

--cookie
-b

<名称=数据[;n2=d2]><$[$]fm变量>

请参阅表注释 3

--cookie-jar
-c

<$[$]fm变量>

直接文件访问,“-”将由 FileMaker 变量替代。

--crlf

 

 

--data
-d

<数据>@<$[$]fm变量>

请参阅表注释 4

--data-ascii

<数据>@<$[$]fm变量>

请参阅表注释 4

--data-binary

<数据>@<$[$]fm变量>

请参阅表注释 4

--data-raw

<数据>

 

--data-urlencode

<数据>=<数据>@<$[$]fm变量><名称>=<数据><名称>@<$[$]fm变量>

请参阅表注释 4

--digest

 

 

--disable-eprt

 

 

--disable-epsv

 

 

--dump-header
-D

<$[$]fm变量>

请参阅表注释 3

--expect100-timeout

<秒>

指定秒的小数。

--fail
-f

 

 

--FM-return-container-variable

 

如果“从 URL 插入”将一个变量作为目标,请使用此选项强制返回的数据存储为容器数据。

--FM-text-encoding

<编码>

将此选项紧接的选项中的文本从 FileMaker 内部字符编码转换为指定编码。使用为TextEncode 函数编码参数定义的名称之一。

--form
-F

<名称=内容><名称=@$[$]fm变量>

请参阅表注释 4

--form-string

<名称=内容>

 

--ftp-alternative-to-user

<命令>

 

--ftp-create-dirs

 

 

--ftp-method

multicwdnocwdsinglecwd

指定这些方法之一。

--ftp-pasv

 

 

--ftp-port
-P

<接口><IP 地址><主机名>-

附加 :[开始]-[结束] 以指定端口范围。

--ftp-pret

 

 

--ftp-skip-pasv-ip

 

 

--ftp-ssl-ccc

 

如果尚未设置,还需要将 --ftp-ssl-ccc-mode 设置为 Passive

--ftp-ssl-ccc-mode

activepassive

指定这些模式之一。

--ftp-ssl-control

 

 

--head
-I

 

 

--header
-H

<名称:值>

为每个指定的标题使用此选项一次。

--ignore-content-length

 

 

--interface

<名称>

 

--ipv4
-4

 

 

--ipv6
-6

 

 

--junk-session-cookies
-j

 

 

--keepalive-time

<秒>

指定秒的整数。

--limit-rate

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

指定整数及后接的可选单位。

--list-only
-l

 

 

--local-port

<编号>[-编号]

指定一个端口或端口范围。

--location
-L

 

 

--location-trusted

 

 

--mail-auth

<地址>

 

--mail-from

<地址>

 

--mail-rcpt

<地址>

 

--max-filesize

<字节>

 

--max-time
-m

<秒>

指定秒的小数。

--no-compressed

 

默认情况下,请求压缩响应。使用此选项可禁用该消息。

--no-keepalive

 

默认情况下,会启用 keepalive 消息。使用此选项可禁用该消息。

--noproxy

<主机[,主机]>*

 

--output
-o

<文件名>

文件名仅用作容器数据的属性。

--path-as-is

 

 

--post301

 

 

--post302

 

 

--post303

 

 

--proxy
-x

<[协议://][用户:密码@]代理主机[:端口]>

 

--proxy-anyauth

 

 

--proxy-basic

 

 

--proxy-digest

 

 

--proxy-header

<名称:值>

为每个指定的标题使用此选项一次。

--proxy-user
-U

<用户:密码>

与 curl 命令行工具不同,如果密码不存在,FileMaker 客户端不会向用户索要密码。

--proxy1.0

<代理主机[:端口]>

 

--proxytunnel
-p

 

 

--quote
-Q

<命令>

为用于 FTP 服务器的每个命令使用此选项一次。

--range
-r

<范围>

 

--raw

 

 

--referer
-e

<URL>

--location 一起使用时支持在 URL 末尾使用 ;auto

--request
-X

<命令>

 

--resolve

<主机:端口:地址>

为每个指定的解析器使用此选项一次。

--show-error
-S

 

请参阅处理错误

--socks4

<主机[:端口]>

 

--socks4a

<主机[:端口]>

 

--socks5

<主机[:端口]>

 

--socks5-hostname

<主机[:端口]>

 

--speed-limit
-Y

<速度>

指定每秒字节的整数。

--speed-time
-y

<时间>

指定秒的整数。

--ssl

 

还支持 --ftp-ssl

--ssl-reqd

 

还支持 --ftp-ssl-reqd

--time-cond
-z

<日期表达式>

仅支持指定 cURL 样式的日期表达式。

--tr-encoding

 

 

--trace

<$[$]fm变量>

请参阅表注释 3

--trace-ascii

<$[$]fm变量>

请参阅表注释 3

--trace-time

 

 

--upload-file
-T

<$[$]fm变量>

请参阅表注释 3。不支持通配(指定与某个模式匹配的文件名)。对于 FTP 和 FTPS,上传到服务器后的文件名将与 URL 末尾指定的文件名相同。对于所有其他受支持的协议,文件名与容器数据指定的文件名相同;URL 中的任何文件名将被忽略。

--use-ascii
-B

 

 

--user
-u

<用户:密码>

与 curl 命令行工具不同,如果密码不存在,FileMaker 客户端不会向用户索要密码。

--user-agent
-A

<代理字符串>

 

表注释

1. 对于某些选项,支持选项名称的长短形式(例如 ‑‑data-d)。

2. 参数的可选部分位于 [ ] 中。

3. 直接文件访问将由 FileMaker 变量替代。

4. 直接文件访问将由前缀为 @ 字符的 FileMaker 变量替代。

使用变量

尽管支持的选项都不允许您直接访问文件系统中的文件或在其中创建文件,但是,您可以指定 FileMaker 变量作为该选项所需的源或目标。要访问或创建文件,您可以将变量设置为容器字段。

要访问文件,您可以将变量设置为其中包含文件的容器字段,然后使用该变量作为 cURL 选项的参数。

要创建文件,您可以将变量用作 cURL 选项的参数,将容器字段设置为该变量,然后作为文件导出容器字段。

处理错误

不受支持的 cURL 选项将被忽略。

如果使用 --show-error 选项:

如果 cURL 库返回错误导致 FileMaker 户端通过 Get (上一个错误) 函数返回错误代码 1631(指示未指明的连接失败),Get (上一个外部错误详情) 函数会返回 curl 命令行工具返回的相同文本。

当操作成功但服务器返回 400 或以上的数据响应代码时,FileMaker 客户端会返回相应的错误代码。如果没有相应的 FileMaker 错误代码,Get (上一个错误) 将返回 1631 并且 Get (上一个外部错误详情) 将返回形式为“响应代码:nnn”的响应代码。

如果不使用 --show-error 选项,服务器响应代码 401 将导致 Get (上一个错误) 返回 FileMaker 错误代码 1627(“验证失败”)。所有其他响应代码返回 FileMaker 错误代码 0(“没有错误”)。

示例

使用证书 myusername 和 mypassword 作为两个关键值对(fname=Boblname=Smith)将 HTTPS POST 数据发送到 example.com,并将请求的数据存储在 $$results 变量中。

在从 URL 插入脚本步骤中:

将“目标”设置为名为 $$results 的变量。

将“指定 URL”设置为 https://example.com/

将“指定 cURL 选项”设置为以下等价选项集之一:

"--user 我的用户名:我的密码 --data fname=Bob&lname=Smith" "--user 我的用户名:我的密码 -d fname=Bob --data-ascii lname=Smith" "--user 我的用户名:我的密码 -d @$post_data"

其中变量 $post_data 设置为文本形式的关键值对或者设置为内容是包含关键值对的文本文件的容器字段。

此脚本显示以上示例中从 post_data 容器字段中的文件发送关键字对的情况。

设置变量 [ $post_data ; 表::post_data ]
从 URL 插入 [ 包括对话框: 关闭 ; 目标: $$结果 ;
"https://example.com/" ; 验证 SSL 证书;
cURL 选项: "--user 我的用户名:我的密码 -d @$post_data" ]

注释 

在 cURL 选项内,在每个引号前加反斜杠。例如,要为Content-type: application/json 指定 HTTP 标头,“指定 cURL 选项”的文本表达式为:

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