在线调试
填写业务相关参数免费在线调试
本接口搭载大模型实时检测体系,仅支持异步调用
一、计费与耗时
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
专业版会员->单独包月->次数包->点数计费->账户余额->免费额度
该产品支持账户余额抵扣,每次扣除金额:0.036 元/次
| 总免费额度 | 每月免费额度 | 每日免费额度 |
|---|---|---|
| 4 (次) | 3 (次) 包含在总免费额度 | 2 (次) 包含在总免费额度 |
| 免费/测试用户请求频率限制 | 请求频率总限制 | 每日请求次数总限制 |
|---|---|---|
| 1秒3次 每个免费用户的QPS总限制 | 1秒5次 每个用户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"
标准两阶段流程:
gpt_image2_submit 提交任务 → 立即返回 task_id、query_url 和 mode/text/image_urls 回显(约 100ms)query_url 轮询 status 接口查询结果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,非法值返回 400url / url2 / url3 / url4 / url5 用于图生图场景,部分人员开放使用(恶意上传不良图片)application/x-www-form-urlencoded 和 application/json 两种 Content-Typequery_url 异步轮询而非同步等待图生图:

---------

文生图:





<?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}×tamp={$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 | |||||
| 变量名 | 类 型 | 静态 | 数组 | 备 注 | ||
| REQU_Data | 文本型 | 提交字符串 | ||||
| return | 文本型 | 返回字符串 | ||||
| API_URL | 文本型 | 接口地址 | ||||
| API_KEY | 文本型 | 接口密钥 | ||||
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`事件。
| 参数名 | 填写参数值 |
|---|---|
请 登录 后发表评论
填写业务相关参数免费在线调试
生成符合你的开发语言代码,复制即可
调整你后端部分逻辑代码即可上线使用
返回顶部