

GET 请求中,keyword 含换行时请 URL 编码,或改用逗号分隔。
| Header名称 | 默认值 | 必填 | 说明 |
|---|---|---|---|
X-API-Key | 你的API密钥 | 是 | 逗号APIKEY,用户后台首页获取 |
Content-Type | application/json | 是 | 请求内容类型 |
| 参数名 | 默认值 | 必填 | 说明 |
|---|---|---|---|
api_id | 67 | 是 | API接口ID,系统默认 |
endpoint_id | ep_581e5ad0ed3eefa4b40df87157af4c15 | 是 | 端点ID,系统默认 |
method | POST | 是 | 请求方式,可选值:GET,POST |
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
keyword | string | 是 | 关键词,支持多个(用换行 \n 或逗号 , 分隔)。系统会随机抽取其中一个进行创作。单个关键词长度 ≤ 50 字。 | |
type | string | 否 | 文章类型,默认知识科普。具体见接口详情。 | |
words | integer | 否 | 目标汉字字数,默认1000,范围 300 – 50000。超出范围将自动修正到边界值。 | |
extra_prompt | string | 否 | 额外文章提示词,将追加到 AI 生成指令中(如:多举案例、语气幽默等)。 | |
extra_sensitive | string | 否 | 额外敏感词,多个用逗号分隔。文章中出现将替换为 *,不影响系统默认敏感词。 | |
format | string | 否 | 返回内容格式: html — 仅返回富文本 HTML(字段 content_html);text — 仅返回纯文本(字段 content_text 默认);both — 同时返回两者 | |
| 参数名 | 类型 | 说明 | 示例 |
|---|---|---|---|
success | string | 请求是否成功,成功为 true | |
data | string | 返回数据对象,成功时存在 | |
data.keyword | string | 实际抽中的关键词 | |
data.title | string | 生成的标题(7 – 50 字) | |
data.type | string | 使用的文章类型 | |
data.target_words | string | 目标字数 | |
data.char_count | string | 实际汉字字数 | |
data.content_html | string | 富文本 HTML 内容(format=html 或 both 时返回) | |
data.content_text | string | 纯文本内容(format=text 或 both 时返回) | |
data.usage | string | Token 用量统计对象 | |
data.usage.prompt_tokens | string | 输入消耗的 token 数(标题 + 文章累加) | |
data.usage.completion_tokens | string | 输出消耗的 token 数 | |
data.usage.total_tokens | string | 总 token 数 | |
data.generated_at | string | 生成时间,格式 Y-m-d H:i:s | |
data.execution_time | string | 本次请求总耗时(秒) | |
| 错误代码 | HTTP状态 | 错误信息 | 详细说明 |
|---|---|---|---|
400 | 400 | missing_keyword | 未提供关键词参数 keyword |
| 400 | sensitive_content | 关键词包含敏感词被拦截 |
500 | 500 | generation_failed | 文章生成失败(AI 服务异常、内容敏感等) |
| 错误代码 | HTTP状态 | 错误信息 | 详细说明 |
|---|---|---|---|
401 | HTTP 401 | 认证失败 | 请求头中缺少 X-API-Key 或 API Key 无效 |
400 | HTTP 400 | 参数错误 | 缺少必要参数(api_id、endpoint_id、method)或必填业务参数缺失 |
404 | HTTP 404 | 资源不存在 | API不存在、已下架或端点不存在 |
403 | HTTP 403 | 未开通 | 您尚未开通此API,请先开通 |
405 | HTTP 405 | 方法不允许 | 请求方法不在端点允许列表中 |
402 | HTTP 402 | 积分不足 | 账户积分不足以调用该API |
500 | HTTP 500 | 服务器内部错误 | 系统异常 |
| type 值 | 说明 |
|---|---|
知识科普 | 通俗易懂的知识科普,逻辑清晰、由浅入深,多用生活化例子(默认) |
观点评论 | 立场鲜明、论据充分的评论文章,先观点后论证 |
散文随笔 | 语言优美、情感真挚的散文风格,注重意境与细节 |
应用说明 | 条理分明、步骤清晰的应用说明,突出实用性 |
商业营销 | 突出价值与卖点的营销文案,有感染力和号召力 |
新闻资讯 | 客观中立、结构规范的新闻稿,倒金字塔结构 |
故事小说 | 有完整情节、鲜明人物和场景描写的叙事文体 |
自由创作 | 根据关键词自由发挥,AI 自动选择合适表达方式 |
<?php
// 以 文章创作(ID:67) 为例,以下为PHP请求示例:
$gateway_url = "https://api.douhao.com/gateway";
// 系统参数
$gatewayData = array(
'api_id' => 67,
'endpoint_id' => 'ep_581e5ad0ed3eefa4b40df87157af4c15',
'method' => 'GET,POST'
);
// 业务参数(请填写实际值)
$bizParams = array(
'keyword' => '', // 请填写实际值,
'type' => '', // 请填写实际值,
'words' => '', // 请填写实际值,
'extra_prompt' => '', // 请填写实际值,
'extra_sensitive' => '', // 请填写实际值,
'format' => '', // 请填写实际值
);
// 合并请求数据
$requestData = array_merge($gatewayData, $bizParams);
// 请求头(请替换为您的API密钥)
$headers = array(
'Content-Type: application/json',
'X-API-Key: 您的API密钥'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $gateway_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 180);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($requestData, JSON_UNESCAPED_UNICODE));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$error = curl_error($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($error) {
echo "请求错误: " . $error;
} else {
echo "HTTP状态码: " . $httpCode . "\n";
echo "响应数据: " . $response;
}
?>#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import requests
import json
# API网关地址
gateway_url = "https://api.douhao.com/gateway"
# 系统参数
gateway_data = {
'api_id': 67,
'endpoint_id': 'ep_581e5ad0ed3eefa4b40df87157af4c15',
'method': 'GET,POST'
}
# 业务参数(请填写实际值)
biz_params = {
'keyword': '', # 请填写实际值,
'type': '', # 请填写实际值,
'words': '', # 请填写实际值,
'extra_prompt': '', # 请填写实际值,
'extra_sensitive': '', # 请填写实际值,
'format': '', # 请填写实际值
}
# 合并请求参数
request_data = {**gateway_data, **biz_params}
# 请求头(请替换为您的API密钥)
headers = {
'Content-Type': 'application/json',
'X-API-Key': '您的API密钥'
}
try:
response = requests.post(
gateway_url,
json=request_data,
headers=headers,
timeout=180,
verify=False # 生产环境建议设为True
)
print(f"HTTP状态码: {response.status_code}")
print("响应数据:")
print(json.dumps(response.json(), indent=2, ensure_ascii=False))
except requests.exceptions.RequestException as e:
print(f"请求错误: {e}")// 以 文章创作(ID:67) 为例,以下为Node.js请求示例
// 需要先安装 axios: npm install axios
const axios = require('axios');
// API网关地址
const gatewayUrl = 'https://api.douhao.com/gateway';
// 系统参数
const gatewayData = {
api_id: 67,
endpoint_id: 'ep_581e5ad0ed3eefa4b40df87157af4c15',
method: 'GET,POST'
};
// 业务参数(请填写实际值)
const bizParams = {
"keyword": "", // 请填写实际值,
"type": "", // 请填写实际值,
"words": "", // 请填写实际值,
"extra_prompt": "", // 请填写实际值,
"extra_sensitive": "", // 请填写实际值,
"format": "", // 请填写实际值
};
// 合并请求参数
const requestData = { ...gatewayData, ...bizParams };
// 请求头(请替换为您的API密钥)
const headers = {
'Content-Type': 'application/json',
'X-API-Key': '您的API密钥'
};
async function callApi() {
try {
const response = await axios.post(gatewayUrl, requestData, {
headers: headers,
timeout: 180000
});
console.log('HTTP状态码:', response.status);
console.log('响应数据:');
console.log(JSON.stringify(response.data, null, 2));
} catch (error) {
if (error.response) {
console.log('HTTP状态码:', error.response.status);
console.log('错误响应:', error.response.data);
} else {
console.log('请求错误:', error.message);
}
}
}
callApi();// 以 文章创作(ID:67) 为例,以下为Java请求示例
// 需要依赖:okhttp 和 gson
import okhttp3.*;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
public class ApiDemo {
private static final String GATEWAY_URL = "https://api.douhao.com/gateway";
private static final Gson gson = new GsonBuilder().setPrettyPrinting().create();
public static void main(String[] args) throws Exception {
// 系统参数
Map<String, Object> gatewayData = new HashMap<>();
gatewayData.put("api_id", 67);
gatewayData.put("endpoint_id", "ep_581e5ad0ed3eefa4b40df87157af4c15");
gatewayData.put("method", "GET,POST");
// 业务参数(请填写实际值)
Map<String, Object> bizParams = new HashMap<>();
map.put("keyword", ""); // 请填写实际值
map.put("type", ""); // 请填写实际值
map.put("words", ""); // 请填写实际值
map.put("extra_prompt", ""); // 请填写实际值
map.put("extra_sensitive", ""); // 请填写实际值
map.put("format", ""); // 请填写实际值
// 合并请求数据
Map<String, Object> requestData = new HashMap<>(gatewayData);
requestData.putAll(bizParams);
// 请求体JSON
String jsonBody = gson.toJson(requestData);
// 创建请求
OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(180, TimeUnit.SECONDS)
.readTimeout(180, TimeUnit.SECONDS)
.build();
RequestBody body = RequestBody.create(
jsonBody,
MediaType.parse("application/json; charset=utf-8")
);
Request request = new Request.Builder()
.url(GATEWAY_URL)
.post(body)
.addHeader("Content-Type", "application/json")
.addHeader("X-API-Key", "您的API密钥") // 请替换为您的API密钥
.build();
try (Response response = client.newCall(request).execute()) {
System.out.println("HTTP状态码: " + response.code());
String responseBody = response.body().string();
System.out.println("响应数据:");
System.out.println(gson.toJson(gson.fromJson(responseBody, Object.class)));
}
}
}# 以 文章创作(ID:67) 为例,以下为cURL请求示例
curl -X POST "https://api.douhao.com/gateway" \
-H "Content-Type: application/json" \
-H "X-API-Key: 您的API密钥" \
-d '{
"api_id": 67,
"endpoint_id": "ep_581e5ad0ed3eefa4b40df87157af4c15",
"method": "GET,POST",
"keyword": "" // 请填写实际值,
"type": "" // 请填写实际值,
"words": "" // 请填写实际值,
"extra_prompt": "" // 请填写实际值,
"extra_sensitive": "" // 请填写实际值,
"format": "" // 请填写实际值
}'
浙公网安备 33059102000262号