Post URL
Post URL
发布数据 Deluge 任务相当于 HTTP POST 请求。它通常受到添加或更新数据等执行写入操作的服务支持。
语法
a. 获取仅带有字符串类型响应内容的简单响应:
<string-variable> = postUrl(<url string>,<map-variable>,true)
其中,
<string-variable> - 用于以字符串格式保存响应内容的字符串变量名称。
<url string> - 待访问的 URL,例如,"http://creator.zoho.com"
<map-variable> - 以指定格式将请求值保存为键值对的映射变量。
b. 获取详细响应,返回响应代码(http 状态代码)和键值对类型响应内容。
<map-variable> = postUrl(<url string>,<map-variable>,false)
其中,
<map-variable> - 用于保存响应代码和响应内容的映射变量名称。
<url string> - 待访问的 URL,例如,"http://creator.zoho.com"
<map-variable> - 以指定格式将请求值保存为键值对的映射变量。
c. 与请求一起发布标头信息,作为映射变量传递第三个参数时需要该信息
<String/Map-variable> = postUrl(<url string>,<request map-variable>,<header map variable>, <boolean isSimpleResponse>)
其中,
<map-variable>- 用于保存响应代码和响应内容的映射变量名称。
<url string>- 待访问的 URL,例如,"http://creator.zoho.com"
<request map-variable>- 以指定格式将请求值保存为键值对的映射变量。
<header map-variable>- 以指定格式将标头值保存为键值对的映射变量。
<isSimpleResponse>- 可选的布尔值,对于简单(字符串)响应为 true,对于详细(映射)响应为 false。默认值为 true。
d. 将内容直接写入到 POST 请求的正文(例如,使用 GDATA 协议插入实体)。
<String/Map-variable> = postUrl(<url string>,<request string-variable>,<header map variable>, <boolean isSimpleResponse>)
其中,
<map-variable> - 用于保存响应代码和响应内容的映射变量名称。
<url string>- 待访问的 URL,例如,”http://creator.zoho.com"
<request string-variable>- 字符串变量,用于保存需要写入 POST 请求正文中的内容。它相当于 <request body>.
<header map-variable> - 将标头值保存为指定格式的键值对。
<isSimpleResponse> - 可选的布尔值,对于简单(字符串)响应为 true,对于详细(映射)响应为 false。默认值为 true。
注:
- 您可以使用 encodeURL() 函数为 url 字符串编码。
用于获取响应代码和响应文本的语法:
map.get("responseCode"); // 返回 HTTP 响应状态代码
map.get("responseText");
如果响应文本是 XML 类型,executeXPath 语句可用于从文档中选择节点。如果响应文本是 JSON 类型,它可转换为 XML。
使用脚本构建器
若要在脚本构建器中添加 post url 任务,
- 从左侧任务树拖放 Web 数据 - Post URL。
- 单击编辑以显示编辑对话框。
- 指定外部网站的 URL 字符串
- 指定用于保存 Post 请求参数的请求映射变量(以外部 API 指定的格式)
- 选择“简单响应”以仅获取字符串响应内容,或选择“详细响应”以便将响应代码和响应内容获取为键值对。
- 单击完成以便将值添加到脚本编辑器。
示例
假设我们有一个名为 Application A 的应用程序,带有一个名为 Form A 的表单,其中包含字段“Name1”、“Email1”和“Phone1”。同样地,如果我们有一个名为 Application B 的应用程序,带有一个名为 Form B 的表单,其中包含字段“Name2”、“Email2”和“Phone2”。当记录添加到 Form A 时,相同的记录需要自动添加到 Form B。为达到这个目的,将以下代码添加到 Form A 的添加时 -> 成功时块。
myMap.put("authtoken", "<your API key>");
myMap.put("scope", "creatorapi");
myMap.put("Name2", input.Name1);
myMap.put("Email2", input.Email1);
myMap.put("Phone2", input.Phone1);
resp = postUrl("https://creator.zoho.com/api/<appowner>/json/ApplicationB/form/FormB/record/add/", myMap);
其中,
<your API key> 是您的身份验证令牌。
<appowner> 是应用所有者姓名。
ApplicationB 是需要自动在其中添加记录的应用程序链接名称。
FormB 是需要自动添加记录的表单链接名称。
resp 保存响应内容
相关链接
使用 API 添加记录 | 从 Google 联系人 API 读取联系人信息
限制
如果(使用 postURL 任务)从放入视图标头且类型设置为对每个记录执行的自定义动作调用户定义的函数,则 postURL 任务将不会执行。
原因:
放入视图标题中的自定义动作可对视图中的所有或特定记录调用。因此,如果对视图中所有或许多记录调用执行 postURL 任务的自定义动作,则它将打开那么多的浏览器窗口。调用此自定义动作的用户有时候可能不了解此行为的真实原因。因此,当自定义动作放入视图标头时,postURL 任务不受支持。