跳到主要内容

HTTP请求

发送 HTTP 请求并拿到返回结果。调用网页接口、上传文件、接非 OpenAI 兼容的大模型,都可以用它。OpenAI 兼容接口优先用 AI 调用

当前模块定义

sys:http网络服务Action
标准模块
输入 17 · 输出 6 · 枚举 3

输入参数

  • 网址urlText必填

    要打开的网页地址

    填写 输入或变量默认 https://
  • 方法methodEnum必填

    Http请求的类型

    填写 固定输入默认 GET
    7 个选项GET、POST、PUT
    GET默认GET
    POSTPOST
    PUTPUT
    DELETEDELETE
    PATCHPATCH
    HEADHEAD
    OPTIONSOPTIONS
  • 请求头headerText可选

    发送的HttpHeader。每行一个header,格式为Name:Value

    填写 输入或变量
  • CookiecookieText可选

    请求的cookie内容

    填写 输入或变量
  • 请求体类型bodyTypeEnum可选

    Http 请求体的内容

    填写 固定输入条件 排除:GET, HEAD, OPTIONS默认 JSON
    5 个选项JSON、文本表单、MultiPart表单
    JSON默认JSON
    文本表单FORM
    MultiPart表单FILE
    单个文件或图片变量(二进制)BinaryFile
    纯文本Text
  • 请求体bodyText可选

    Http 请求 BODY。格式要求详见模块帮助。

    填写 输入或变量条件 排除:GET, HEAD, OPTIONS
  • 内容类型contentTypeText可选

    选填。上传内容的ContentType,适用于"单个文件或图片变量(二进制)"或"纯文本" 请求体类型。

    填写 输入或变量条件 排除:GET, HEAD, OPTIONS
  • 结果类型resultTypeEnum可选

    Http请求的结果类型

    填写 固定输入默认 Text
    文本默认Text
    图片Image
    文件File
  • UserAgentuaText可选
    填写 固定输入
    查看默认值
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36
  • 超时时间expireSecondsNumber可选

    请求超时时间(秒数)

    填写 固定输入默认 100
  • 禁止重定向noAutoRedirectBoolean可选

    是否禁止自动跳转

    填写 固定输入默认 false
  • 强制使用代理forceProxyBoolean可选

    即使系统设置中未启用代理,本步骤仍然使用代理访问。

    填写 固定输入默认 false
  • 忽略HTTPS证书验证skipCertVerifyBoolean可选
    填写 固定输入默认 false
  • 显示进度条showProgressBoolean可选

    是否显示上传下载进度条

    填写 固定输入默认 false
  • 启用SSE流式响应useSSEBoolean可选

    调用AI接口时使用,通过子程序处理接收到的流式响应内容

    填写 固定输入默认 false
  • SSE流式响应处理子程序sseSpNameText可选

    用于处理接收到的流式响应消息,每次收到调用一次,通过data输入变量接收内容。

    填写 固定输入
  • 失败后停止stopIfFailBoolean可选

    失败后是否停止动作

    填写 固定输入默认 true

输出参数

  • 是否成功isSuccessBoolean

    是否操作成功

  • 状态码statusCodeInteger

    返回的http请求状态码

  • 响应头respHeadersDict

    返回的HTTP响应Headers

  • 响应CookiesrespCookiesDict

    返回的Cookies

  • 文本结果contentText

    返回的文本内容

  • 图片结果imgResultImage

    返回的图片内容

概述

使用本模块需要了解 HTTP 的基本概念(方法、请求头、状态码)。

HTTP请求

发送HTTP请求,并获取返回结果
网址
https://
要打开的网页地址
方法
Http请求的类型
请求头
 
发送的HttpHeader。每行一个header,格式为Name:Value
Cookie
 
请求的cookie内容
请求体类型
Http 请求体的内容
请求体
 
Http 请求 BODY。格式要求详见模块帮助。
内容类型
 
选填。上传内容的ContentType,适用于"单个文件或图片变量(二进制)"或"纯文本" 请求体类型。
结果类型
Http请求的结果类型
UserAgent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36
超时时间
100
请求超时时间(秒数)
SSE流式响应处理子程序
 
用于处理接收到的流式响应消息,每次收到调用一次,通过data输入变量接收内容。
是否成功
-- 选择变量 --
是否操作成功
状态码
-- 选择变量 --
返回的http请求状态码
响应头
-- 选择变量 --
返回的HTTP响应Headers
响应Cookies
-- 选择变量 --
返回的Cookies
文本结果
-- 选择变量 --
返回的文本内容
图片结果
-- 选择变量 --
返回的图片内容

参数说明

网址:要调用的 URL。

方法:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS。

请求头:每行 Name:Value。不要在这里写 Content-Type,放到 内容类型

Cookie:请求附带的 Cookie。要把词典转成 Cookie 文本(1.9.5+):

$= String.Join(" ", {dict}.Select(x => x.Key + "=" + x.Value + ";"))

也可以用动作从当前网页复制:

复制当前网页Cookie
运行子程序
写入剪贴板自动(纯文本或图片) => 剪贴板

请求体类型:方法不是 GET / HEAD / OPTIONS 时出现。JSON、文本表单、MultiPart表单、单个文件或图片变量(二进制)、纯文本。

请求体:按类型填,见下文。

内容类型:对应 Content-Type。对 JSON、纯文本、单个文件或图片变量有效(1.38.14 之前仅二进制有效)。

结果类型:文本、图片、文件。要和接口实际返回的类型一致。

UserAgent:模拟浏览器。

超时时间:秒数,默认 100

禁止重定向:禁止自动跟随 HTTP 跳转。默认关闭。

显示进度条:上传/下载进度。默认关闭。

忽略HTTPS证书验证:忽略证书异常。默认关闭。

强制使用代理:本步骤启用代理。优先用软件里配置的代理;没配则用系统代理。下面是软件设置里的相关项:

启用SSE流式响应:用子程序处理流式响应。打开后应指定处理子程序。

SSE流式响应处理子程序:每次收到一行就调用一次。子程序需要有名为 data 的输入变量。

失败后停止:失败是否中止动作。默认开启。

输出

  • 是否成功
  • 状态码:HTTP 状态码。
  • 响应头:词典。
  • 响应Cookies:词典。
  • 文本结果:结果类型为文本时是响应正文;为文件时是临时文件路径(1.31.1+)。
  • 图片结果:结果类型为图片时。

请求体格式

JSON

Content-Typeapplication/json。请求体应是合法 JSON:

{"title":"test","sub":[1,2,3]}

用表达式生成:

$= JsonConvert.SerializeObject(
new {
字段1 = {变量1},
字段2 = {变量2}
}
)

1.29.0+ 也可以直接把词典或匿名对象交给请求体,Quicker 会转成 JSON:$= {词典变量}$= new { name = "张三", age = 20 }。更多写法见 词典类型表达式

文本表单

Content-Typeapplication/x-www-form-urlencoded,类似网页 <form>

id=3&name=Hello&param1=value1

MultiPart表单

Content-Typemultipart/form-data。每行一个参数:参数名=值,或 参数名=FILE:文件路径 / 参数名=IMG:图片变量名

param1=value1
param2=value2
FileParam=FILE:文件完整路径
ImgFileParam=IMG:图片变量名

单个文件或图片变量(二进制)

上传文件:FILE:完整文件路径(冒号小写)。上传图片变量:IMG:变量名

FILE:C:\Users\Leal\Pictures\jiupian.PNG
IMG:img

SSE 流式输出

不少大模型用 SSE 推结果。OpenAI 兼容接口用 AI 调用;其它厂商可以用本模块自己处理。

先做处理子程序,定义一个 data 输入,用来接收每一行。通常只处理以 data: 开头的行,后面多半是 JSON。

data: 后面按接口解析出正文,再写到文本窗口或发送到前台。有的接口每次只给新增字,有的给到目前为止的全文(通义千问属于后者),输出时要自己去重。

然后打开 启用SSE流式响应,填子程序名。接口若要求在头或请求体里声明流式,也一并加上。

HTTP请求

发送HTTP请求,并获取返回结果
网址
https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation
要打开的网页地址
方法
Http请求的类型
请求头
$$Authorization:Bearer {apiKey}
发送的HttpHeader。每行一个header,格式为Name:Value
SSE流式响应处理子程序
sse
用于处理接收到的流式响应消息,每次收到调用一次,通过data输入变量接收内容。
通义千问测试
如果判断条件:$=string.IsNullOrEmpty({apiKey})
用户输入单行文本
HTTP请求POST https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/ge...
文本窗口显示窗口,不等待关闭(立即开始执行后续的步骤) {content}
用户输入多行文本
文本处理{prompt} 转义文本为合法Json值 => {prompt}
文本窗口显示窗口,不等待关闭(立即开始执行后续的步骤) {content}
HTTP请求POST https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/ge...
提示消息输出完成!

乱码问题

抓某些网页出现乱码时,可试这个子程序:

限制与排障

  • 证书报错可临时打开 忽略HTTPS证书验证
  • 需要登录态时补 Cookie / 请求头;不要把 Content-Type 写进请求头。
  • SSE 子程序必须有 data 输入;没指定子程序时流式选项无效。
  • 结果类型和真实响应不一致时,文本结果 / 图片结果 会空。

示例动作

相关链接

更新历史

  • 20230312 增加强制使用代理。
  • 20230602 1.38.14:文本、JSON 请求体可通过 内容类型 设定 Content-Type
  • 20240418 1.42.32 增加流式输出。

更新于