文档中心

为您提供清晰、准确、易于理解的API文档,帮助开发人员快速上手、理解和使用产品。

产品目录
豆瓣扫码登录图片水印智能检测GitHub账号注册时间查询EasyLink 网盘直链提取AI 高保真图片压缩Steam玩家公开档案查询Steam游戏限免与喜加一Steam全球区域价格对比Steam游戏史低与全网最低价决策Steam游戏评测口碑深度分析Steam商店热销聚合Steam单游戏实时人数与热度Steam游戏关键词秒搜Steam全球热门游戏在线人数榜全球护照实力指数排行榜网站SEO信息查询网站信息分析优化微博用户主页深度资料查询微博全榜单热搜实时聚合海外共享账号实时聚合查询拼多多商品深度解析知乎全站智能搜索知乎专栏文章深度解析知乎问题详情+高赞回答聚合查询知乎用户主页信息查询网站地图 Sitemap.xml 在线生成SEO关键词与Meta描述智能生成AI 智能伪原创改写引擎AI 六大主流模型聚合对话极速HTTP代理IP活体采集苹果地图全球地点智能检索123云盘文件目录获取飞书云盘分享免登直链速取极验4代验证码端到端智能通关极验4代 Load 参数获取(前置握手)极验4代滑块距离智能识别(通用版)极验4代 W 参数加密生成图书ISBN智能查询Ping 可视化检测(图片版)IP归属地精准定位公众号付费模板HTML提取蓝奏云网盘全能管理网页SVG资源深度提取MOD43 校验位计算器自动过Cloudflare验证(cf5秒盾)4399游戏账号全自动注册4399滑块验证码智能识别腾讯SVIP图床2FA动态验证码生成器百度网盘直链获取微博评论批量采集(支持二级评论)58同城全参数获取MT论坛自动签到飞牛NAS论坛自动签到腾讯JCE协议解析轻量图床(支持图片、视频、音频等)IPv4/IPv6地址归属地查询公安备案查询ICP备案查询(稳定实时版)ICP备案查询(轻享版)ICP备案查询(优享版)腾讯滑块验证码纯算解密开发者工具箱API全球DNS服务器测速排行腾讯OM图床蓝色档案风格Logo生成文本Hash加密密码强度检测网站可用性检测PyPI包信息查询GitHub仓库信息查询NPM包信息查询蓝奏云解析(支持文件夹解析)蓝奏云解析(单文件)夸克网盘云转存最稳SVIP图床CSDN技术热榜实时追踪实时热股雷达哈基咪歌词加解密蓝奏优享版直链解析夸克网盘直链解析UC网盘直链解析获取github开源项目的信息闲鱼商品详情网易云图床文本内容审核蓝奏云 acw_sc__v2 Cookies 获取微博图床UUID4唯一标识生成器123云盘大文件解析飞书文档智能提取123云盘扫码登录API网站认证检测SHA256加密和解密csdn增加文章浏览量CSDN博主信息查询迅雷分享链接解密夸克热搜榜360图床Charles注册码生成器CPU排行榜查询检测百度网盘分享链接是否失效Deepseek-R1满血版网站快照番茄图床百度风云实时热榜通义千问AI智能对话腾讯元宝IOS证书检测YY频道OW信息查询智语通AI对话蓝奏云目录解析有道云笔记内容解析全网云盘解析v2全网云盘解析v1Cloudflare DNS动态管理超稳图床防红直链短网址讯飞星火AI夸克网盘登录ImageSafe 存储【新版】获取网站favicon图标【新版】全能仿站网站压缩状态检测全站a标签链接获取网站robots检测访客终端信息获取【新版】SSl证书到期检测文本内容合规检测聚合域名拦截查询OCR图片文字识别v2文叔叔直链解析生活小窍门计算机术语查询JavaScript加密混淆网站地图生成cloudflare优选IP获取全球地震信息获取【新版】短网址生成API【新版】ip地址精查URL加解密图片信息获取摩斯电码加解密检测特定网址是否被百度收录获取蜘蛛池IP葫芦侠智能搜索小飞机网盘解析内容相似度检测短位域名抢注颜值鉴定友情链接检测智能获取github的star项目FinalShell全能激活码获取网站所有图片RGB颜色值转16进制16进制颜色转RGBSSl证书到期检测QQ域名拦截检测HTTP请求解析域名dns解析查询【新版】域名whois查询葫芦侠一键签到葫芦侠图床葫芦侠获取key获取User-Agent信息User-Agent随机获取ip地址精查123云盘解析v1图片随机验证码123云盘解析v2夸克网盘签到【新版】敏感词库/违禁词检测【精准版】IP信息查询搜索引擎智能提示通用印刷体识别(高精度版)名片识别苹果通话记录生成移动云盘解析SSL证书透明信息查询ATS检测HTTP2检测【新版】SSL状态检测SSL状态检测DNS诊断查询域名解析查询微信小程序状态检测文字转语音城通网盘直链解析国内测速APIOCR图片文字识别GitHub全能加速API奶牛快传解析API有道云笔记永久直链解析【新版】网站权重综合查询【新版】网站TDK信息查询贴吧图床接口万能验证码生成【新版】全国行政区查询检测dns是否被污染劫持全能仿站API腾讯云CDN刷新(目录)腾讯云CDN刷新(URL)纯真IP数据库查询随机验证码生成随机密码生成网站综合收录量查询获取网站favicon图标网站权重综合查询获取网站TDKIP签名档检测网站当前状态全球PING服务器端口检测图片转base64编码MD5加解密敏感词库/违禁词检测二维码识别还原【国际】IP地址信息查询,支持IPV6查询Mac地址厂商蜘蛛日志在线分析检测网站是否被挂马校验搜索引擎爬虫真实性短网址生成API短网址还原域名whois查询绿标域名认证查询获取当前客户端信息恶意IP威胁情报查询SMTP邮件发送下载页生成APIBase64编码解码检测域名是否已注册检测域名是否被QQ拦截检测域名是否被微信拦截
抖音视频原画解析全网视频图集解析全网音乐搜索星辰慧眼 AI 看图识万物星辰影绘 AI 短视频生成B站UP主动态时间线知乎视频直链原画解析小红书首页推荐笔记 · 多频道实时采集抖音直播弹幕实时快照豆包 AI 视频解析豆包AI绘图无水印原图极速解析即梦AI视频无水印原档直链解析千问AI绘图无水印原图直链解析广东电视台·荔枝网频道智能查询樱花动漫详情全维解析抖音智能搜索v2酷狗热歌榜单一站直取AI智能多语言语音合成B站视频字幕智能提取国漫深度解析豆瓣电影 Top250 榜单聚合B站UP主新增粉丝监测B站音频智能解析(支持100P分P直链提取)抖音直播间观众排行榜抖音小店商品详情查询酷我音乐搜索解析小鹅通视频解码快手视频解析商品id抖音视频解析商品idAI智能语音合成抖音BGM视频列表央视网视频抖音视频评论抖音视频图集抖音用户二维码生成(完整信息查询)小红书视频图集v2M3U8视频去广告解析微视视频无水印抖音视频播放量提升抖音权重查询QQ音乐点歌v3最右视频图集猫眼影视数据查询腾讯视频信息v2B站缓存视频批量合并B站直播弹幕实时抓取抖音汽水音乐歌词提取抖音合集作品采集微博视频v2六间房直播源解析陌陌视频美拍视频开眼视频虎牙视频好看视频(原全民小视频)爱奇艺视频搜索爱奇艺热搜榜单网易云音乐歌词搜索网易云歌单腾讯视频v2全网直播间背景素材网易云音乐加密参数生成抖音私信卡片消息生成QQ音乐签名算法抖音作品高清图采集快手权重查询抖音热门博主随机视频♫ 智能歌词识别小红书视频图集Now冥想音频解析抖音主播会员榜信息腾讯视频抖音视频BGM提取【新版】抖音汽水音乐抖音放映厅抖音短剧抖音智能搜索抖音用户主页抖音直播详情抖音推荐视频抖音热搜榜抖音精选视频小红书图文笔记解析抖音签名参数获取梨视频得物短视频音频转换为SILK格式咪咕音乐点歌v2CCTV电视源ai视频生成爱奇艺视频优酷视频百度短剧七猫短剧【新版】B站视频解析TikTok视频图集全网影视搜索全网影视超清4K解析bilibili用户主页信息获取腾讯影视信息抖音直播解析1905电影网【新版】B站视频聚合5sign音乐快手随机视频快手视频搜索搜狐视频华数TV酷我音乐点歌v3虎牙主播解析风行网视频电影票房TOP10实时查询QQ音乐点歌v2喜马拉雅音乐v2QQ音乐点歌蜻蜓FM云听FM荔枝音乐点歌酷狗音乐指数波点音乐点歌快手视频图集网易云音乐点歌v2千千音乐点歌歌词大全酷我音乐点歌v2AcFun视频排行榜【新版】精选短视频美拍热度榜快手热门视频QQ音乐热歌榜单铃声多多酷我随机歌曲豆瓣影评影院信息大全音悦台抖音汽水音乐抖音主页热度作品抖音短视频批量分析皮皮虾视频皮皮虾图集精选网络短剧喜马拉雅FM主播西瓜视频【新版】芒果TVB站视频解析网易云音乐点歌v3全民K歌【新版】全民K歌喜马拉雅音乐电影评论词云图【新版】网易云热门评论咪咕音乐点歌酷我音乐点歌芒果TVB站视频聚合B站视频搜索精选短视频苏州电视台直播源斗鱼主播解析聚合铃声制作唱鸭随机刷新网易云热门评论随机获取短视频凤凰台直播网易云音乐MV微博用户主页微博视频酷狗铃声酷狗音乐MV微视随机短视频网易云音乐点歌
快手实时热搜热榜·九榜同查宇宙CP短文生成姓名缘分配对测算世界杯赛事数据(美加墨)微信读书 · 飙升榜雷达微信读书 · 智能图书雷达支持银行与币种字典19 银行 × 30 币种全量牌价矩阵外币 ↔ 外币跨币种换算人民币 ↔ 外币实时换算器银行币种精确牌价单条直查单银行 30 币种外汇牌价总览单币种 19 家银行外汇牌价横评铁路行业列车资讯全国火车票代售点查询全国 31 省火车站字典查询全国省份火车站名录查询列车车次车站搜索站到站直达列车查询全国火车站经停车次时刻表全国列车车次时刻表查询全球国家护照字典两国护照签证双向互查目的地签证开放度速查全球护照签证待遇一键直查卡券集市·全网卡券聚合比价国家医保定点机构权威查询全国工商企业档案深度查询v2AI 智能人体皮肤检测分析惠农网店铺资质与店内商品聚合惠农网供应商品详情深度解析惠农网首页爆款农产品供应直采榜惠农网全平台关键词货源搜索财联社财经资讯实时聚合中国国际航空航班实时查询苹果安卓App热门实时榜单全国城市空气质量历史档案查询淘宝商品 SKU 实时库存极速查询淘宝同店铺商品列表淘宝商品真实评价淘宝商品详情解析淘宝全网商品关键词智搜中国农药登记信息智能查询全网影视娱乐热度指数榜单京东商品详情解析京东全站商品搜索体育赛事直播预告神马热点新闻AI智能跌倒姿态识别AI 智能人脸识别定位智能油耗管家AI深度推理伦敦金实时换算百度贴吧智能发帖我的世界全自动签到支付宝SDK转H5支付参数解析宝贝回家寻亲信息查询BOSS直聘岗位智搜南京广电直播源获取贵州广电直播源获取河北广电直播源获取山东广电直播源获取混凝土方量与配合比计算施工方案AI智能生成工程造价智能估算混凝土保护层厚度智能查询建筑节能计算书智能审查建筑防火间距智能查询模板工程量智能计算房贷智能还款计算器砌体工程量智能计算建筑材料参数智能查询钢筋工程量智能计算脚手架工程量智能计算施工进度AI智能预测抗震设防参数查询建筑面积智能计算工程量清单智能审核钢筋锚固搭接长度计算土方工程量智能计算建筑智能审图(匠鉴云图 PRO)每日AI资讯快报苹果维修状态查询苹果网络锁查询苹果验机报告苹果激活锁查询苹果激活保修查询Pro(预激活)B站热搜排行榜实时获取知乎热榜Top50实时获取B站昵称占用检测好游快爆游戏热搜榜京东实时黄金金价查询12306全国火车站智能搜索12306智能中转换乘方案查询12306实时余票与车次查询12306全车次票价实时查询12306列车经停站时刻表查询12306车次号转列车编号查询12306实时时间与购票日期查询12306车站信息查询身份证二要素实名核验身份证实名核验与信息解析整点一言报时整点报时v2今日黄金实时报价全国重名查询星座配对指数测算星座今日运势查询随机英语单词必应热搜榜单智能图像识别(人物,动物,植物)广告极限词智能检测(电商必备)ARA奶粉批次召回查询A股实时分时数据分析中国传统农历万年历查询东方财富基金收益实时查询CS2 Major赛事竞猜排行榜原神米游社数据查询助手全球金融汇率实时换算v2Steam游戏信息查询全国实体店商家采集亚马逊新品商品采集iTunes链接生成App Store应用信息查询微信公众号视频音频解析图片内容安全智能检测王者荣耀战绩查询斗图表情包搜索三角洲行动数据查询支付宝内跳链接生成活动线报聚合快递揽件助手京东联盟推广链接转换Steam游戏预约助手历史天气按月查询谣言真伪查证聚合多平台题库全球日出日落数据实时获取智能换装大师一二布布举牌生成器比特币实时行情监控有道云表格解析和风实时天气查询Unicode字符画TTF/OTF字体解析iPhone订单生成夸克文库智搜ShowDoc文档解析A股资金流向智能分析股票分时成交明细查询A股涨停风向标天翼云盘自动签到花体字转换微信运动刷步智慧药典查询金融数据通 - A股K线与行情时空同步·精准时间API抖音快手小游戏合集股票行情基金估值跟踪一言文学句子智能随机选择助手小米运动步数中国广电机型适配查询台风实时监测135编辑器模板提取三角洲部队每日密码中华菜系查询今日运势米哈游聚合api增强图片清晰度百度ai全能小说聚合微信热文榜智能起名大师公路区间测速用时计算器腾讯应用宝搜索凤凰新闻番茄小说最新科创企业数据iOS证书与描述文件检测天机命理腾讯天气天气预报(国内版)大爱语录(语音版)全自动天气智能助手年龄计算基金持仓管理与收益查询CSGO箱子炼金收益计算中国科学家查询智能碳循环饮食计算图片漫画风线稿转换随机动漫图片接口双色球往期开奖信息百度百科搜索智问通 - 全能AI提问失信老赖查询二要素认证CSGO饰品智控·DMarketEPIC周免游戏获取CF全区信息查询文昌帝君灵签马思唯整点报时汉字笔画解析退休年龄计算CSGO开箱推理ai绘画(多模型)谣言终结者语音合成(多音色版)电音基调查询求签接好运懒人听书京东时间同步助手阿里云社区福利宝ASCII艺术字生成生活优惠礼包领取民间奇闻怪事声韵克隆API经典春晚语言类节目精选解答之书【新版】骚扰电话查询手机号价值评估时段关怀提醒时光追踪与统计晨光速递60秒新闻简报抽签占卜全国车辆限行规则查询全国车辆限行城市查询地址智能解析手写字生成文心一言ChatGPT3.5文章智能配图助手手机号深度解析与评分行驶证智能识别车牌价值评估车辆牌照验证服务全国房价查询铁路购票查询公交站点查询体脂率测算全球黄金价格查询全国高校查询聚合单位转换业余无线电证书查询民俗对联本草纲目百科查询花语箴言查询香烟价格查询全球货币实时换算全国常用电话查询健康生活小妙招身份核验三要素认证天生一对生成彩色ASCII字符画自动获取城市4级idQQ趣味表情包生成人民币大小写转换车牌估价【新版】每日60s早报ip地址查天气新华日报搜狗百科实时获取活动线报人品运势气温走势折线图起个好听的网名判断闰平年好游快爆搜索全球时区信息获取各国时间差电视直播源获取清华录取通知书获取本月日历图天气预报(全球版)书籍智能查询西瓜视频热搜词微博热点聚合奥运会奖牌排行榜机票最低价查询家常菜制作教程你是由什么组成的?考考你的脑力成语接龙全国工商企业档案深度查询每日一签图片版获取当前农历日期和天干地支测评手机尾号区县邮编查询邮编地址查询必应翻译【新版】腾讯翻译API网易国内外新闻脱口秀大全实时查询黄金行情【新版】成语大全葫芦侠活动线报【新版】历史上的今天微信公众号壁纸获取每年节假日搜狗多语言翻译快递物流星级评价血型生肖解析拼多多智能搜索彩色暖光瓶生成农耕种植查询一句话智能搜索摇卦占卜全面解析你的性格与运势生肖姻缘配对星座姻缘配对血型姻缘配对五行分析12星座分析12生肖分析女性经期检测蜜语加解密身份证签发机关查询必应汉译英八字-九星命理车型大全查询【新版】聚合热搜榜全球金融汇率实时换算VIN车辆识别代码查询获取当前时辰及时刻信息汽车OBD故障码查询宠物大全查询姓氏起源查询全国景区大全标准身高体重查询交通违章代码查询银行卡归属地查询网易热点全能解析条形码生成口吐芬芳API斗图大全看图猜成语取时间差API小黄人举牌生成快递物流信息查询快递物流信息查询v2百度翻译【新版】食物热量查询【新版】菜谱大全API食物热量查询血型规律查询腾讯漫画挑战古诗词王者荣耀战力查询王者荣耀英雄查询菜谱大全API全国城市/县/区天气查询AI绘画(词生画)今日汽油价格周公解梦今日油价查询(国内)检测是否成年(防沉迷专用)ISBN书号查询谜语大全成语大全腾讯翻译API有道翻译API中国农历查询每日一言语音版手机号码运营商和归属地查询聚合语录垃圾分类淘宝联想词历史上的今天微信公众号文章解析全国行政区划级联数据地址转经纬度经纬度转地址骚扰电话查询笑话大全发光字体生成星座运势查询全国车牌号归属地查询全国每日实时降雨查询整点报时墨迹天气
调用次数:未统计

短网址生成API

正常 全站会员免费

将长网址进行缩短,支持百度、新浪、腾讯短网址等等。

更新日期
2023-05-21
调用权限
正常
每日限制
无限制
请求频率限制
1秒10次
参考价格
全站会员免费

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

全站会员->单独包月->次数包->点数计费->账户余额->免费额度

全站会员:

全站会员有效期内,可免费使用本产品。

请求限制:

免费/测试用户请求频率限制 请求频率总限制 全站会员请求频率限制 每日请求次数总限制
0秒0次 每个免费用户的QPS总限制 1秒10次 每个用户QPS总限制 1秒10次 每个全站会员用户的QPS总限制 不限 每个用户每日请求总次数

其他准入要求:

无

接口地址:https://daoyouapi.com/api/xdwz/index

返回格式:application/json

请求方式:HTTPGET

请求示例:https://daoyouapi.com/api/xdwz/index?key=你的key&longurl=输入长网址

请求HEADER:

名称值
Content-Typeapplication/x-www-form-urlencoded;charset:utf-8;

请求参数说明:

名称必填类型示例值说明
key是string35kj5jnlj53453kl5j43nj5接口密钥,在控制台->密钥管理查看
longurl是stringhttps://www.kkjsz.cn输入长网址

返回参数说明:

名称类型说明
codeint成功为200,其它为失败返回码(非http返回状态码)
msgstringcode对应的描述
targetstring原始链接
linkstring短链地址

返回示例:

错误码类型说明
403int没有权限
400int参数传递不正确
500int服务器内部错误

<?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://daoyouapi.com/api/xdwz/index', [
        '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://daoyouapi.com/api/xdwz/index',
	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://daoyouapi.com/api/xdwz/index”
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://daoyouapi.com/api/xdwz/index?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://daoyouapi.com/api/xdwz/index?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://daoyouapi.com/api/xdwz/index?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: 'daoyouapi.com',
  path: '/api/xdwz/index',
  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: 'daoyouapi.com',
  path: '/api/xdwz/index',
  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://daoyouapi.com/api/xdwz/index";

// 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://daoyouapi.com/api/xdwz/index?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://daoyouapi.com/api/xdwz/index?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://daoyouapi.com/api/xdwz/index?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
业务上线

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

数据驱动未来

立即注册

客服微信

chunlai1688999

请打开手机微信,扫一扫联系我们

客服QQ
122616688

商务号,添加请说明来意

在线咨询
点击咨询

工作时间:8:00-24:00

返回顶部