文档中心

基于OpenAPI规范的标准化技术文档枢纽,提供版本化、交互式、机器可读的API全生命周期管理解决方案。

产品目录

GPT-image-2/Nano Banana 2 |异步_AI绘画_v3

正常 按量计费

本接口搭载大模型实时检测体系,仅支持异步调用
一、计费与耗时
1.GPT-image-2:35–120s,0.026元/次,全开放,支持图生图(最多5张参考图),输出2K图, (GPT已于2026/6/22开放所有人使用)
2.Nano Banana 2:10–30s,0.015元/次,灰度开放
二、支持画幅
1:1 / 16:9 / 9:16 / 4:3 / 3:4 / 3:2 / 2:3 / 21:9
三、异步流程
1.提交任务立即返回任务ID
2.获取结果:回调地址推送 或 使用任务ID轮询查询
GPT-Image2在线生成:https://api.yaohud.cn/gpt-image-2

更新日期
2026-07-19
免费额度
4
调用权限
正常
每日限制
无限制
请求频率限制
1秒5次
参考价格
0.036元/次

计费控制优先级(按已开通的类型进行):

专业版会员->单独包月->次数包->点数计费->账户余额->免费额度

账户余额:

该产品支持账户余额抵扣,每次扣除金额:0.036 元/次

免费额度:

总免费额度 每月免费额度 每日免费额度
4 (次) 3 (次) 包含在总免费额度 2 (次) 包含在总免费额度

请求限制:

免费/测试用户请求频率限制 请求频率总限制 每日请求次数总限制
1秒3次 每个免费用户的QPS总限制 1秒5次 每个用户QPS总限制 不限 每个用户每日请求总次数

其他准入要求:

  • 账户余额/点数/次数包计费的用户,不限制请求频率(QPS)
  • 接口地址:https://api.yaohud.cn/api/model/gpt-image-2/gpt_image2_submit

    返回格式:application/json

    请求方式:HTTPGETPOST/JSON

    请求示例:https://api.yaohud.cn/api/model/gpt-image-2/gpt_image2_submit?key=你的密钥

    文档更新时间:2026-07-03

    请求参数说明:

    名称 必填 类型 示例值 说明
    key string YOUR_KEY 接口密钥,在控制台->密钥管理查看(白名单 IP 可留空)
    text string 二次元猫娘 图片描述提示词,支持中英文,支持长描述
    size string 9:16 图片比例,见下方"比例说明"表(默认 1:1)
    url string https://api.yaohud.cn/1cs/3_0.png 图生图参考图 1,需公网可访问;可与 url2/url3/url4/url5 / image_urls 同时存在,按顺序合并(最多 5 张)
    url2 string https://api.yaohud.cn/1cs/3_0.png 图生图参考图 2,可与 url/url3/url4/url5 组合实现多图生图(最多 5 张)
    url3 string https://api.yaohud.cn/1cs/3_0.png 图生图参考图 3,与 url/url2 按顺序合并
    url4 string https://api.yaohud.cn/1cs/3_0.png 图生图参考图 4,与 url/url2/url3 按顺序合并
    url5 string https://api.yaohud.cn/1cs/3_0.png 图生图参考图 5,与 url/url2/url3/url4 按顺序合并(与 image_urls[] 等价可混用)
    image_urls[] string[] image_urls[]=a&image_urls[]=b 图生图参考图数组(GET 用 image_urls[]= 多次传,POST 用同名数组或 JSON 数组),与 url/url2/url3/url4/url5 等价可混用;GET+POST 合并去重后最多 5 张,超过返回 400 错误
    n 暂未开放 int 1 生成张数(接口开关已关闭,传入不生效,后续开放请关注更新)

    比例说明:

    含义 适用场景
    1:1 正方形 头像、卡片、社交平台
    16:9 横图 电脑壁纸、视频封面、Banner
    9:16 竖图 手机壁纸、抖音/小红书
    4:3 横图 经典相机比例、PPT 配图
    3:4 竖图 海报、人像
    3:2 横图 单反横拍、相机原生比例
    2:3 竖图 单反竖拍、相册打印
    21:9 超宽屏 电影横幅、笔记本壁纸

    返回示例(提交成功 - 文生图):

    {
        "code": 200,
        "msg": "任务提交成功",
        "data": {
            "task_id": "84e37791a1a5d8852dab7d3258c9e32b",
            "id": "84e37791a1a5d8852dab7d3258c9e32b",
            "mode": "文生图",
            "text": "二次元猫娘",
            "image_urls": [],
            "status": "pending",
            "images": [],
            "cost": "0.025/次",
            "size": "9:16",
            "比例": "竖图-手机",
            "扣费前点数": 0,
            "扣费前余额": 998.512,
            "点数": 0,
            "余额": 998.487,
            "query_url": "https://api.yaohud.cn/gpt-image-2/status?task_id=84e37791a1a5d8852dab7d3258c9e32b"
        },
        "exec_time": 0.138,
        "tips": "妖狐API提供",
        "ip": "用户IP"
    }
            

    返回示例(提交成功 - 图生图):

    {
        "code": 200,
        "msg": "任务提交成功",
        "data": {
            "task_id": "dc590901c1dff1f29767cd725e4630bf",
            "id": "dc590901c1dff1f29767cd725e4630bf",
            "mode": "图生图",
            "text": "把图中人物改成红头发",
            "image_urls": [
                "https://api.yaohud.cn/1cs/3_0.png"
            ],
            "status": "pending",
            "images": [],
            "cost": "0.025/次",
            "size": "1:1",
            "比例": "正方形",
            "扣费前余额": 997.087,
            "余额": 997.062,
            "query_url": "https://api.yaohud.cn/gpt-image-2/status?task_id=dc590901c1dff1f29767cd725e4630bf"
        }
    }
            

    返回示例(查询 - 任务处理中):

    {
        "code": 201,
        "msg": "任务处理中,请稍后查询",
        "data": {
            "task_id": "dc590901c1dff1f29767cd725e4630bf",
            "status": "pending",
            "images": [],
            "mode": "图生图",
            "text": "把图中人物改成红头发",
            "image_urls": [
                "https://api.yaohud.cn/1cs/3_0.png"
            ],
            "size": "1:1",
            "submit_time": "2026-06-23 19:48:06",
            "tip": "图片生成约需 30-60 秒,建议每 5 秒轮询一次"
        }
    }
            

    返回示例(查询 - 生成成功):

    {
        "code": 200,
        "msg": "生成成功,共 1 张图片",
        "data": {
            "task_id": "dc590901c1dff1f29767cd725e4630bf",
            "status": "completed",
            "mode": "图生图",
            "text": "把图中人物改成红头发",
            "image_urls": [
                "https://api.yaohud.cn/1cs/3_0.png"
            ],
            "size": "1:1",
            "images": [
                {
                    "local_url": "https://acg.yaohud.cn/AI/GPT-image2/images/dc590901c1dff1f29767cd725e4630bf_0.png",
                    "revised_prompt": "把图中人物改成红头发"
                }
            ],
            "tip": "可使用 images[].local_url 字段获取图片地址"
        }
    }
            

    返回示例(查询 - 任务失败):

    {
        "code": 500,
        "msg": "任务失败",
        "data": {
            "task_id": "dc590901c1dff1f29767cd725e4630bf",
            "status": "failed",
            "images": [],
            "mode": "图生图",
            "text": "违规提示词",
            "error": "反代返回的失败原因(例: 这个请求涉及对《原神》中明显未成年角色(可莉)的带有暧昧/身体接触与性化倾向的描写内容,这类内容不能生成或用于图像创作。)",
            "tip": "请检查提示词是否合规,或稍后重试"
        }
    }
            

    返回示例(失败 - 余额不足):

    {
        "code": 402,
        "msg": "余额不足,扣费失败,请充值",
        "data": {
            "need": "0.025元",
            "当前余额": 0
        }
    }
            

    返回示例(失败 - 缺少必填参数):

    {
        "code": 400,
        "msg": "请通过参数「text」传递绘画提示词",
        "data": {
            "current_time": "2026-06-23 19:00:00",
            "request_ip": "用户实际IP",
            "retry_after": 10
        }
    }
            

    返回字段说明:

    字段 类型 说明
    code int 状态码:200=成功/生成完成,201=任务处理中,400=参数错误,402=余额不足,403=未授权,500=任务失败/服务异常,502=反代服务不可用
    msg string 提示信息
    data object 返回的数据对象
    —— submit 接口 data 字段 ——
    data.task_id string 任务ID(32位),用于轮询查询结果
    data.id string 同 task_id,前端可直接使用
    data.mode string 任务模式:文生图 / 图生图,由是否传入参考图决定
    data.text string 用户传入的提示词原文(回显)
    data.image_urls string[] 实际传给反代的参考图数组(按顺序,文生图时为 []
    data.status string 任务状态:pending(待处理)/ processing(生成中)/ completed(已完成)/ failed(失败)
    data.images array 图片列表(提交时为空数组,查询时含 local_url
    data.cost string 本次扣费金额描述
    data.size string 实际使用的图片比例(如 9:16),未传时为 1:1
    data.比例 string size 的中文含义(如"竖图-手机"),方便前端直接展示
    data.扣费前点数 float 扣费前用户剩余点数
    data.扣费前余额 float 扣费前用户账户余额(元)
    data.点数 float 扣费后用户剩余点数
    data.余额 float 扣费后用户账户余额(元)
    data.query_url string 查询任务状态接口的完整 URL(已拼接 task_id,可直接轮询)
    —— status 接口 data 字段(任意状态都回显) ——
    data.task_id string 任务ID
    data.status string 任务状态:pending / processing / completed / failed
    data.mode string 文生图 / 图生图(从 submit 时记录映射反查)
    data.text string 用户传入的提示词原文(反查)
    data.image_urls string[] 参考图数组(反查)
    data.size string 提交时使用的比例(反查)
    data.submit_time string 提交时间(反查)
    data.images array 已完成时含 local_url,未完成时为 []
    data.tip string 状态对应的操作建议
    data.error string 仅在 failed 时返回,已过滤 URL/路径,最长 200 字符
    —— 通用错误 data 字段 ——
    data.need string 需要扣费的金额(余额不足时)
    data.当前余额 float 用户当前账户余额
    data.current_time string 服务器当前时间
    data.request_ip string 请求方 IP
    data.retry_after int 建议重试间隔(秒)

    错误码说明:

    错误码 说明
    200 任务提交成功(submit)/ 任务已完成(status)
    201 任务处理中(status,pending/processing 状态)
    400 缺少必填参数 text / size 取值非法
    402 账户余额不足,扣费失败
    403 key 不正确 / 用户信息无效
    500 反代接口异常 / 服务内部错误 / 任务失败
    502 反代 GPT-image2 服务暂时不可用

    调用示例:

    # 文生图:1:1 正方形
    curl "https://api.yaohud.cn/api/model/gpt-image-2/gpt_image2_submit?key=YOUR_KEY&text=可爱动漫少女"
    
    # 9:16 竖图
    curl "https://api.yaohud.cn/api/model/gpt-image-2/gpt_image2_submit?key=YOUR_KEY&text=二次元猫娘&size=9:16"
    
    # 图生图:单参考图
    curl "https://api.yaohud.cn/api/model/gpt-image-2/gpt_image2_submit?key=YOUR_KEY&text=把图中人物改成红头发&url=https://api.yaohud.cn/1cs/3_0.png"
    
    # 图生图:双参考图(url + url2)
    curl "https://api.yaohud.cn/api/model/gpt-image-2/gpt_image2_submit?key=YOUR_KEY&text=双图生图&url=https://api.yaohud.cn/1cs/3_0.png&url2=https://api.yaohud.cn/1cs/3_0.png"
    
    # 图生图:五参考图(url + url2 + url3 + url4 + url5,最多 5 张)
    curl "https://api.yaohud.cn/api/model/gpt-image-2/gpt_image2_submit?key=YOUR_KEY&text=五图融合&url=https://api.yaohud.cn/1cs/3_0.png&url2=https://api.yaohud.cn/1cs/3_0.png&url3=https://api.yaohud.cn/1cs/3_0.png&url4=https://api.yaohud.cn/1cs/3_0.png&url5=https://api.yaohud.cn/1cs/3_0.png"
    
    # 图生图:image_urls 数组
    curl "https://api.yaohud.cn/api/model/gpt-image-2/gpt_image2_submit?key=YOUR_KEY&text=多图参考&image_urls[]=https://api.yaohud.cn/1cs/3_0.png&image_urls[]=https://api.yaohud.cn/1cs/3_0.png"
    
    # ============ POST 调用方式 ============
    
    # POST form 表单:单参考图
    curl -X POST "https://api.yaohud.cn/api/model/gpt-image-2/gpt_image2_submit" 
      --data-urlencode "key=YOUR_KEY" 
      --data-urlencode "text=把图中人物改成红头发" 
      --data-urlencode "url=https://api.yaohud.cn/1cs/3_0.png"
    
    # POST form 表单:双参考图(url + url2)
    curl -X POST "https://api.yaohud.cn/api/model/gpt-image-2/gpt_image2_submit" 
      --data-urlencode "key=YOUR_KEY" 
      --data-urlencode "text=双图生图" 
      --data-urlencode "url=https://api.yaohud.cn/1cs/3_0.png" 
      --data-urlencode "url2=https://api.yaohud.cn/1cs/3_0.png"
    
    # POST form 表单:image_urls[] 数组(同名多值)
    curl -X POST "https://api.yaohud.cn/api/model/gpt-image-2/gpt_image2_submit" 
      --data-urlencode "key=YOUR_KEY" 
      --data-urlencode "text=多图参考" 
      --data-urlencode "image_urls[]=https://api.yaohud.cn/1cs/3_0.png" 
      --data-urlencode "image_urls[]=https://api.yaohud.cn/1cs/3_0.png"
    
    # POST JSON body
    curl -X POST "https://api.yaohud.cn/api/model/gpt-image-2/gpt_image2_submit" 
      -H "Content-Type: application/json" 
      -d '{"key":"YOUR_KEY","text":"把图中人物改成红头发","url":"https://api.yaohud.cn/1cs/3_0.png","url2":"https://api.yaohud.cn/1cs/3_0.png","url3":"https://api.yaohud.cn/1cs/3_0.png","url4":"https://api.yaohud.cn/1cs/3_0.png","url5":"https://api.yaohud.cn/1cs/3_0.png","size":"1:1"}'
    
    # 查询任务状态(用提交返回的 query_url)
    curl "https://api.yaohud.cn/gpt-image-2/status?task_id=84e37791a1a5d8852dab7d3258c9e32b"
            

    使用流程:

    标准两阶段流程:

    1. 调用 gpt_image2_submit 提交任务 → 立即返回 task_idquery_urlmode/text/image_urls 回显(约 100ms)
    2. 使用返回的 query_url 轮询 status 接口查询结果
    3. 查询 status 字段:
      • pending / processing → 继续轮询(建议 5 秒间隔)
      • completed → 取 images[].local_url 即为生成好的图片
      • failed → 查看 error 字段的错误信息

    注意事项:

    • text 必填,建议使用详细描述以提高图片质量
    • size 必传为下列之一:1:1 / 16:9 / 9:16 / 4:3 / 3:4 / 3:2 / 2:3 / 21:9,非法值返回 400
    • url / url2 / url3 / url4 / url5 用于图生图场景,部分人员开放使用(恶意上传不良图片)
    • 图生图最多支持 5 张参考图,超过返回 400 错误;同 URL 会自动去重
    • 支持 GET / POST 两种调用方式,POST 支持 application/x-www-form-urlencodedapplication/json 两种 Content-Type
    • 生成耗时约 30-60 秒,请使用 query_url 异步轮询而非同步等待
    • 每次成功调用扣 0.023 元(从账户余额扣除),余额不足直接返回 402 不消耗调用次数

    返回示例:

    图生图:
    168E1FAE4D414247D50BD0D6A2698BB3.jpg

    768A57DF613EC187B5D599CE363B37E7.jpg

    ---------

    86E0023711F976622DDAB0385FB3878D.jpg

    DF37BA5B7F03557F8E1F43529CA8DDAA.png文生图:

    屏幕截图 2025-09-27 224345.png屏幕截图 2025-09-27 224403.png屏幕截图 2025-09-27 223940.png屏幕截图 2025-09-27 223955.png屏幕截图 2025-09-27 224006.png

    
    <?php
    /**
     * API请求DEMO
     * 
     * 本demo支持常见的HTTP请求方法(GET/POST/PUT/DELETE等)
     */
    
     //基本配置
    $api_key = '你的接口密钥,登录控制台后在密钥管理页面申请';
    $secret_key = '';
    
    // API请求示例:
    try {
        $client = new ApiClient($api_key, $secret_key);
        $client->setTimeout(10);
        $client->setVerifySSL(false); // 关闭SSL验证
    
        // GET请求示例
        echo "=== 开始GET请求 ===\n";
        $response = $client->get('https://api.yaohud.cn/api/model/gpt-image-2/gpt_image2_submit', [
            'key' => $api_key,
            'key2' => '其他参数'
        ]);
        print_r($response);
        //print_r($client->getLastRequestInfo());
        /* 
        // POST表单示例
        echo "\n=== 开始POST请求 ===\n";
        $response = $client->post('接口地址', [
            'key' => $api_key,
            'key2' => '其他参数'
        ]);
        print_r($response);
        print_r($client->getLastRequestInfo());
    
        // POST JSON示例
        echo "\n=== 开始POST JSON请求 ===\n";
        $response = $client->postJson('接口地址', [
            'key' => $api_key,
            'key2' => '其他参数'
        ]);
        print_r($response);
        print_r($client->getLastRequestInfo());
         */
    } catch (ApiClientException $e) {
        echo "API请求错误: " . $e->getMessage();
        if ($e->getCode() > 0) {
            echo " (HTTP状态码: " . $e->getCode() . ")";
        }
        print_r($client->getLastRequestInfo() ?? []);
    }
    
    /**
     * API客户端类
     * 
     * 提供了一个简单的HTTP API客户端实现,支持常见的HTTP请求方法(GET/POST/PUT/DELETE等)
     * 具有以下主要功能:
     * - 支持 API 密钥和签名认证
     * - 可配置请求超时和SSL验证
     * - 支持自定义请求头
     * - 支持表单和JSON格式的请求体
     * - 自动解析响应结果
     * - 提供详细的请求信息记录
     * 
     * 使用示例:
     * ```
     * $client = new ApiClient('https://api.example.com', 'api_key', 'secret_key');
     * $response = $client->get('/users', ['page' => 1]);
     * ```
     * 
     * @throws ApiClientException 当API请求失败时抛出异常
     */
    class ApiClient
    {
        private $apiKey;
        private $secretKey;
        private $timeout = 30;
        private $verifySSL = true;
        private $lastRequestInfo = [];
        private $defaultHeaders = [];
    
        /**
         * 构造函数
         * 
         * @param string $apiKey  API密钥(可选)
         * @param string $secretKey 签名密钥(可选)
         */
        public function __construct(string $apiKey = '', string $secretKey = '')
        {
            $this->apiKey = $apiKey;
            $this->secretKey = $secretKey;
        }
    
        /**
         * 设置请求超时时间(秒)
         */
        public function setTimeout(int $seconds): self
        {
            $this->timeout = $seconds;
            return $this;
        }
    
        /**
         * 设置是否验证SSL证书
         */
        public function setVerifySSL(bool $verify): self
        {
            $this->verifySSL = $verify;
            return $this;
        }
    
        /**
         * 添加默认请求头
         */
        public function addDefaultHeader(string $name, string $value): self
        {
            $this->defaultHeaders[$name] = $value;
            return $this;
        }
    
        /**
         * 发送GET请求
         * 
         * @param string $endpoint 接口端点
         * @param array  $query    查询参数
         * @param array  $headers  额外请求头
         */
        public function get(string $endpoint, array $query = [], array $headers = []): array
        {
            return $this->request('GET', $endpoint, [
                'query' => $query,
                'headers' => $headers
            ]);
        }
    
        /**
         * 发送POST请求(表单格式)
         * 
         * @param string $endpoint 接口端点
         * @param array  $data     POST数据
         * @param array  $headers  额外请求头
         */
        public function post(string $endpoint, array $data = [], array $headers = []): array
        {
            return $this->request('POST', $endpoint, [
                'form_data' => $data,
                'headers' => $headers
            ]);
        }
    
        /**
         * 发送POST请求(JSON格式)
         * 
         * @param string $endpoint 接口端点
         * @param array  $data     POST数据
         * @param array  $headers  额外请求头
         */
        public function postJson(string $endpoint, array $data = [], array $headers = []): array
        {
            return $this->request('POST', $endpoint, [
                'json' => $data,
                'headers' => array_merge(['Content-Type' => 'application/json'], $headers)
            ]);
        }
    
        /**
         * 发送PUT请求
         */
        public function put(string $endpoint, array $data = [], array $headers = []): array
        {
            return $this->request('PUT', $endpoint, [
                'json' => $data,
                'headers' => $headers
            ]);
        }
    
        /**
         * 发送DELETE请求
         */
        public function delete(string $endpoint, array $data = [], array $headers = []): array
        {
            return $this->request('DELETE', $endpoint, [
                'json' => $data,
                'headers' => $headers
            ]);
        }
    
        /**
         * 获取最后一次请求的详细信息
         */
        public function getLastRequestInfo(): array
        {
            return $this->lastRequestInfo;
        }
    
        /**
         * 基础请求方法
         */
        private function request(string $method, string $endpoint, array $options = []): array
        {
            // 初始化cURL
            $ch = curl_init();
            $url = ltrim($endpoint, '/');
    
            // 准备请求头
            $headers = $this->prepareHeaders($options['headers'] ?? []);
    
            // 处理查询参数
            if (!empty($options['query'])) {
                $url .= '?' . http_build_query($options['query']);
            }
    
            // 处理请求体
            $postData = null;
            if (isset($options['form_data'])) {
                $postData = http_build_query($options['form_data']);
                $headers[] = 'Content-Type: application/x-www-form-urlencoded';
            } elseif (isset($options['json'])) {
                $postData = json_encode($options['json']);
                $headers[] = 'Content-Type: application/json';
            }
    
            // 设置cURL选项
            curl_setopt_array($ch, [
                CURLOPT_URL => $url,
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_CUSTOMREQUEST => $method,
                CURLOPT_HTTPHEADER => $headers,
                CURLOPT_TIMEOUT => $this->timeout,
                CURLOPT_SSL_VERIFYPEER => $this->verifySSL,
                CURLOPT_SSL_VERIFYHOST => $this->verifySSL,
                CURLOPT_HEADER => true,
            ]);
    
            if ($method !== 'GET' && $postData !== null) {
                curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
            }
    
            // 执行请求
            $response = curl_exec($ch);
            $error = curl_error($ch);
            $info = $this->lastRequestInfo = curl_getinfo($ch);
            curl_close($ch);
    
            // 处理错误
            if ($error) {
                throw new ApiClientException("cURL请求失败: " . $error);
            }
    
            // 分离响应头和响应体
            $headerSize = $info['header_size'];
            $responseHeaders = substr($response, 0, $headerSize);
            $responseBody = substr($response, $headerSize);
    
            // 解析响应
            $result = json_decode($responseBody, true) ?? $responseBody;
    
            // 检查HTTP状态码
            if ($info['http_code'] >= 400) {
                $errorMsg = is_array($result) ? ($result['message'] ?? $responseBody) : $responseBody;
                throw new ApiClientException("API请求失败: " . $errorMsg, $info['http_code']);
            }
    
            return [
                'status' => $info['http_code'],
                'headers' => $this->parseHeaders($responseHeaders),
                'data' => $result
            ];
        }
    
        /**
         * 准备请求头(自动添加签名)
         */
        private function prepareHeaders(array $headers): array
        {
            // 合并默认头
            $headers = array_merge($this->defaultHeaders, $headers);
    
            // 添加签名头
            if ($this->apiKey && $this->secretKey) {
                $timestamp = time();
                $signString = "key={$this->apiKey}&timestamp={$timestamp}";
                $signature = hash_hmac('sha256', $signString, $this->secretKey);
    
                $headers['X-Api-Key'] = $this->apiKey;
                $headers['X-Api-Timestamp'] = $timestamp;
                $headers['X-Api-Sign'] = $signature;
            }
    
            // 转换为cURL格式
            $curlHeaders = [];
            foreach ($headers as $name => $value) {
                $curlHeaders[] = "$name: $value";
            }
    
            return $curlHeaders;
        }
    
        /**
         * 解析响应头
         */
        private function parseHeaders(string $headers): array
        {
            $parsed = [];
            foreach (explode("\r\n", $headers) as $i => $line) {
                if ($i === 0) {
                    $parsed['HTTP_CODE'] = $line;
                } else {
                    $parts = explode(': ', $line, 2);
                    if (count($parts) === 2) {
                        $parsed[$parts[0]] = $parts[1];
                    }
                }
            }
            return $parsed;
        }
    }
    
    class ApiClientException extends \Exception
    {
        // 自定义异常类
    }
    
    
    
    
    
    
    //jQuery-Ajax
    $.ajax({
    	url: 'https://api.yaohud.cn/api/model/gpt-image-2/gpt_image2_submit',
    	data: {
    	//接口参数,一行一个,可按照接口文档-请求参数 的参数填写,或者直接复制开发工具下面的测试代码。
    		key: '你的接口密钥,登录控制台后在密钥管理页面申请',
    		参数名: '参数值',
    
    	},
    	type: 'GET', //请求协议(GET或POST),一般默认GET,部分接口需要POST请求,根据实际情况修改为POST即可。
    	dataType: 'json',
    	success: function(data) {
    		console.log(data); //请求成功,输出结果到控制台
    	},
    	timeout: 3000, //超时时间
    	error: function(data) {
    		console.log('请求失败'); //失败处理
    	}
    });
    
    
    
        
    子程序名 返回值类型 公开 备 注
    __启动窗口_创建完毕    
    ' 添加并使用《精易模块》
    Send_API ()
    子程序名 返回值类型 公开 备 注
    Send_API    
    变量名 类 型 静态 数组 备 注
    REQU_Data 文本型   提交字符串
    return 文本型   返回字符串
    API_URL 文本型   接口地址
    API_KEY 文本型   接口密钥
    API_URL = “https://api.yaohud.cn/api/model/gpt-image-2/gpt_image2_submit”
    API_KEY = “你的接口密钥,登录控制台后在密钥管理页面申请”
    REQU_Data = "请求参数,根据接口文档的请求参数来拼接字符串(例a=a&b=b&c=c)"
    return = 编码_Utf8到Ansi (网页_访问 (API_URL + “?key=” + API_KEY + REQU_Data, , , , , “User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36”))
    输出调试文本 (return)
    
    import java.io.BufferedReader; 
    import java.io.InputStreamReader; 
    import java.net.HttpURLConnection; 
    import java.net.URL; 
     
    public class Test { 
        public static void main(String[] args) { 
            try { 
                URL url = new URL("https://api.yaohud.cn/api/model/gpt-image-2/gpt_image2_submit?key=你的接口密钥,登录控制台后在密钥管理页面申请"); 
                HttpURLConnection connection = (HttpURLConnection)url.openConnection(); 
     
                // 设置请求方式
                connection.setRequestMethod("GET"); 
                connection.connect(); 
     
                // 获取响应码
                int responseCode = connection.getResponseCode(); 
                if (responseCode == HttpURLConnection.HTTP_OK) { 
                    BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); 
                    String line; 
                    while ((line = reader.readLine()) != null) { 
                        // 读取到的内容给line变量 
                        System.out.println(line); 
                    } 
                    reader.close(); 
                } 
            } catch (Exception e) { 
                e.printStackTrace(); 
            } 
        } 
    }
    
    
    
    package main
     
    import (
        "fmt"
        "io/ioutil"
        "net/http"
    )
     
    func main() {
        // 发起一个GET请求
        resp, err := http.Get("https://api.yaohud.cn/api/model/gpt-image-2/gpt_image2_submit?key=你的接口密钥,登录控制台后在密钥管理页面申请")
        if err != nil {
            fmt.Println("http get error", err)
            return
        }
     
        // 读取响应结果
        result, err := ioutil.ReadAll(resp.Body)
        if err != nil {
            fmt.Println("http read error", err)
            return
        }
     
        // 关闭响应结果
        defer resp.Body.Close()
     
        fmt.Println(string(result))
    }
    
    
    
    ```
    # 导入requests库
    import requests
     
    # 设置url
    url = 'https://api.yaohud.cn/api/model/gpt-image-2/gpt_image2_submit?key=你的接口密钥,登录控制台后在密钥管理页面申请'
     
    # 发送post请求
    response = requests.post(url, data={'key1': 'value1', 'key2': 'value2'})
     
    # 获取响应内容
    result = response.json()
     
    # 打印结果
    print(result)
    ```
    
    
    // 以下是使用Node.js进行GET和POST请求API接口的示例代码:
    
    const https = require('https');
    const querystring = require('querystring');
    
    // 定义请求选项
    const options = {
      hostname: 'api.yaohud.cn',
      path: '/api/model/gpt-image-2/gpt_image2_submit',
      method: 'GET'
    };
    
    // 发送GET请求
    https.get(options, res => {
      console.log(`statusCode: ${res.statusCode}`);
    
      res.on('data', d => {
        process.stdout.write(d);
      });
    }).on('error', error => {
      console.error(error);
    });
    
    // 发送POST请求
    const postData = querystring.stringify({
      'key1': 'value1',
      'key2': 'value2'
    });
    
    const postOptions = {
      hostname: 'api.yaohud.cn',
      path: '/api/model/gpt-image-2/gpt_image2_submit',
      method: 'POST',
      headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Content-Length': Buffer.byteLength(postData)
      }
    };
    
    const postReq = https.request(postOptions, res => {
      console.log(`statusCode: ${res.statusCode}`);
    
      res.on('data', d => {
        process.stdout.write(d);
      });
    });
    
    postReq.on('error', error => {
      console.error(error);
    });
    
    postReq.write(postData);
    postReq.end();
    /*
    这个示例代码使用Node.js内置的`https`模块进行HTTP请求。
    
    首先定义了一个GET请求的选项,然后使用`https.get()`方法发送了GET请求。在响应流上注册回调函数,以便在收到响应数据时将其输出到控制台。在出现错误时,也注册了错误处理程序。
    
    类似地,我们也定义了一个POST请求选项,并使用`https.request()`方法发送它。需要在请求头中包含适当的`Content-Type`和`Content-Length`以确保服务器可以正确解析请求体。请求体由`write()`方法写入,并在请求结束时通过调用`end()`方法通知请求对象已经完成。
    
    注意,此示例默认使用`querystring`模块将数据作为x-www-form-urlencoded格式进行编码。如果需要使用其他格式(如JSON),则需要相应地更改请求头和请求体的编码方式。
    
    另外,为了确保HTTPS请求的安全性,您也可以添加其他选项,例如验证服务器证书、设置代理等。
    */
    
    
    
    
    
    
    以下是使用C语言进行GET和POST请求API接口的示例代码:
    
    ``` c
    #include 
    #include 
    #include 
    #include  // 需要安装curl库
    
    // API地址
    const char* url = "https://api.yaohud.cn/api/model/gpt-image-2/gpt_image2_submit";
    
    // GET请求
    void getRequest(CURL* curl) {
        CURLcode res;
    
        // 设置URL
        curl_easy_setopt(curl, CURLOPT_URL, url);
    
        // 执行请求
        res = curl_easy_perform(curl);
    
        if(res != CURLE_OK) {
            fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
        }
    }
    
    // POST请求
    void postRequest(CURL* curl) {
        CURLcode res;
    
        // 设置URL
        curl_easy_setopt(curl, CURLOPT_URL, url);
    
        // 设置POST数据
        const char* postData = "key=你的接口密钥,登录控制台后在密钥管理页面申请&key1=value1";
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postData);
    
        // 执行请求
        res = curl_easy_perform(curl);
    
        if(res != CURLE_OK) {
            fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
        }
    }
    
    int main() {
        CURL* curl;
        CURLcode res;
    
        // 初始化curl
        curl = curl_easy_init();
    
        if(curl) {
            // 设置SSL验证
            curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L);
    
            // GET请求
            getRequest(curl);
    
            // POST请求
            postRequest(curl);
    
            // 清理curl资源
            curl_easy_cleanup(curl);
        }
    
        return 0;
    }
    ```
    
    这个示例代码使用了libcurl库进行HTTP请求。
    
    首先,需要设置API地址。然后,基于`CURL`结构体创建curl句柄,并使用`curl_easy_setopt()`函数设置选项。这里设置了SSL验证,以确保请求的安全性。
    
    在GET请求中,只需将URL设置为选项,然后调用`curl_easy_perform()`函数执行请求即可。
    
    在POST请求中,还需要将POST数据作为字符串传递给`CURLOPT_POSTFIELDS`选项。
    
    需要注意的是,为了避免内存泄漏,应该在使用完curl句柄之后调用`curl_easy_cleanup()`函数进行清理。
    
    除了上述示例代码外,libcurl库还提供了更多高级选项,例如处理HTTP头、上传文件等。可以参考文档进行更详细的了解。
    
    
    
    
    以下是一个使用C++请求API接口的示例代码:
    
    ```cpp
    #include 
    #include 
    
    int main() {
        CURL *curl;
        CURLcode res;
        std::string url = "https://api.yaohud.cn/api/model/gpt-image-2/gpt_image2_submit?key=你的接口密钥,登录控制台后在密钥管理页面申请";
        std::string response;
    
        curl = curl_easy_init();
        if (curl) {
            curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
            curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
            curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, [](char *ptr, size_t size, size_t nmemb, void *userdata) -> size_t {
                std::string *response = reinterpret_cast(userdata);
                response->append(ptr, size * nmemb);
                return size * nmemb;
            });
            curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
    
            res = curl_easy_perform(curl);
            if (res == CURLE_OK) {
                std::cout << "Response: " << response << std::endl;
            } else {
                std::cerr << "Error: " << curl_easy_strerror(res) << std::endl;
            }
            curl_easy_cleanup(curl);
        }
    
        return 0;
    }
    ```
    
    解释:
    
    1. 引入需要的头文件:``用于输出结果,``用于使用libcurl库。
    
    2. 定义需要请求的API接口的URL和存储响应数据的字符串变量。
    
    3. 初始化一个CURL对象。
    
    4. 设置CURL对象的参数:请求的URL(`CURLOPT_URL`)、是否跟随重定向(`CURLOPT_FOLLOWLOCATION`)、响应数据的写入函数(`CURLOPT_WRITEFUNCTION`)和响应数据的写入位置(`CURLOPT_WRITEDATA`)。
    
    5. 发送HTTP请求并获取响应数据,判断返回状态码是否OK。
    
    6. 清理CURL对象。
    
    运行该程序会发送GET请求到指定的API接口URL,并在程序终止前将响应数据输出到终端。注意,在使用该示例代码之前需要安装libcurl库。
    
    
    
    
    以下是一个使用C#请求API接口的示例代码:
    
    ```csharp
    using System;
    using System.Net.Http;
    using System.Threading.Tasks;
    
    class Program {
        static async Task Main(string[] args) {
            HttpClient client = new HttpClient();
            string url = "https://api.yaohud.cn/api/model/gpt-image-2/gpt_image2_submit?key=你的接口密钥,登录控制台后在密钥管理页面申请";
            HttpResponseMessage response = await client.GetAsync(url);
            if (response.IsSuccessStatusCode) {
                string responseBody = await response.Content.ReadAsStringAsync();
                Console.WriteLine("Response: " + responseBody);
            } else {
                Console.WriteLine("Error: " + response.StatusCode);
            }
        }
    }
    ```
    
    解释:
    
    1. 引用需要的命名空间:`System.Net.Http`用于使用HttpClient类,`System.Threading.Tasks`用于异步执行请求操作。
    
    2. 创建一个HttpClient对象。
    
    3. 定义需要请求的API接口的URL。
    
    4. 发送GET请求到指定的API接口URL,并获取响应结果。
    
    5. 判断响应状态是否成功,如果成功则读取响应数据(使用ReadAsStringAsync方法),否则输出错误信息(使用StatusCode属性)。
    
    运行该程序会发送GET请求到指定的API接口URL,并在程序终止前将响应数据输出到终端。注意,在使用该示例代码之前需要安装.NET Framework或.NET Core SDK。
    
    
    
    
    以下是VB请求API接口的示例代码:
    
    ```
    ' 1. 引入Microsoft XML v6.0库
    ' 2. 创建一个XMLHTTP对象
    Dim xhr As XMLHTTP
    Set xhr = New XMLHTTP
    
    ' 3. 设置请求的URL、方法,以及是否异步等
    xhr.Open "GET", "https://api.yaohud.cn/api/model/gpt-image-2/gpt_image2_submit?key=你的接口密钥,登录控制台后在密钥管理页面申请", False
    
    ' 4. 发送请求
    xhr.send
    
    ' 5. 获取响应结果
    Dim responseText As String
    responseText = xhr.responseText
    
    ' 6. 输出响应结果
    Debug.Print responseText
    
    ' 7. 释放资源
    Set xhr = Nothing
    ```
    
    在这个示例中,我们创建了一个XMLHTTP对象,用于请求API接口。我们先调用`open`方法来设置请求的URL、方法,以及是否异步。然后,我们发送请求,并使用`responseText`属性来获取响应结果。最后,我们将响应结果打印到控制台,完成操作后释放资源,以防止内存泄漏。请注意,以上示例代码为同步请求,如果想使用异步请求,需要设置第三个参数为`True`,并在请求结束时处理`OnReadyStateChange`事件。
    
    参数名 填写参数值
    评论0
    未登录

    登录 后发表评论

    仅需三步即可快速接入

    1
    在线调试

    填写业务相关参数免费在线调试

    2
    生成代码

    生成符合你的开发语言代码,复制即可

    3
    业务上线

    调整你后端部分逻辑代码即可上线使用

    数据驱动未来

    立即注册

    返回顶部