文档中心

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

产品目录

该分类下无相关接口

调用次数:522 次

宝宝起名v2

正常 次数包

在线起名v2版api,词库更多,可查名字的八字排盘三才五格命理等信息,支持复姓起名

更新日期
2024-10-05
免费额度
5
调用权限
正常
每日限制
无限制
请求频率限制
1秒10次
参考价格
0.015元/次

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

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

次数包:

额度 价格 有效期
1000 (次) ¥ 15 低至0.015/次 3650天
5000 (次) ¥ 70 低至0.014/次 3650天
10000 (次) ¥ 130 低至0.013/次 3650天
50000 (次) ¥ 600 低至0.012/次 3650天
100000 (次) ¥ 998 低至0.00998/次 3650天

免费额度:

总免费额度 每月免费额度 每日免费额度
5 (次) 5 (次) 包含在总免费额度 5 (次) 包含在总免费额度

请求限制:

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

其他准入要求:

接口地址:https://qqlykm.cn/api/qiming/index

返回格式:application/json

请求方式:HTTPGET

请求示例:请仔细查看以下接口文档再请求

请求HEADER:

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

请求参数说明:

名称必填类型示例值说明
keystring35kj5jnlj53接口密钥,在控制台->密钥管理查看
surnamestring姓氏,支持复姓
sexstring2性别参数,男为1,2为女
birthdaystring2024-10-05 11:02:03出生时间, 请按照示例值的格式请求
typestring2
单字名或双字名, 单字为1, 双字为2
name
string淑可
名字, 传递此参数可查询八字等信息
quantitystring
30起名返回数量控制, 最少5, 最多30

此接口与在线起名v1接口不同的是:本接口birthday参数可精确到时分秒,词库也更大,相对v1接口返回的名字会更好听,可控制起名返回的数量,查询八字等信息也更全。

详细请看请求示例(女名):

起名:?surname=董&sex=2&birthday=2024-10-03 05:06:00&type=2(surname参数支持复姓起名, 如 欧阳)

查询八字信息:?surname=董&name=淑可&birthday=2024-10-03 05:06:00

控制起名返回的数量:?surname=董&sex=2&birthday=2024-10-03 05:06:00&type=2&quantity=5(quantity参数非必填,每次请求可最低5个名字,最多30个名字,不填此参数默认返回30个名字)

请按照示例请求即可,birthday参数请严格按照示例的格式传参,否则会报错。

本接口采用次数包方式,成功返回结果 才会扣费,失败不计费。

起名返回参数说明:

名称类型说明
codeint状态码
msgstring状态信息
datastring请求结果数据集

查询八字返回参数说明:

名称类型说明
codeint状态码
msgstring状态信息
datastring请求结果数据集
data.birthdaystring
出生时间
data.name.surnamestring姓氏
data.name.combinestring名字
data.name.surname_pinyinstring姓氏的拼音
data.name.surname_wuxingstring姓氏的五行属性
data.name.surname_bihuastring姓氏的笔画数
data.name.surname_bihua_jianstring姓氏的简体笔画数
data.name.surname_bushoustring姓氏的部首
data.name.combine_char1string名字的第一个字
data.name.combine_char1_pinyinstring名字第一个字的拼音
data.name.combine_char1_wuxingstring名字第一个字的五行属性
data.name.combine_char1_bihuastring名字第一个字的笔画数
data.name.combine_char1_bihua_jianstring名字第一个字的简体笔画数
data.name.combine_char1_bushoustring名字第一个字的部首
data.name.combine_char1_descriptionstring名字第一个字的详细描述
data.name.combine_char2string名字的第二个字
data.name.combine_char2_pinyinstring名字第二个字的拼音
data.name.combine_char2_wuxingstring名字第二个字的五行属性
data.name.combine_char2_bihuastring名字第二个字的笔画数
data.name.combine_char2_bihua_jianstring名字第二个字的简体笔画数
data.name.combine_char2_bushoustring名字第二个字的部首
data.name.combine_char2_descriptionstring名字第二个字的详细描述
data.ming_li.paipan_result.lunar_yearstring排盘结果-农历年份
data.ming_li.paipan_result.lunar_monthstring排盘结果-农历月份
data.ming_li.paipan_result.lunar_daystring排盘结果-农历日期
data.ming_li.paipan_result.lunar_hourstring排盘结果-农历时辰
data.ming_li.paipan_result.lunar_year_chinesestring排盘结果-农历年份的中文表示
data.ming_li.paipan_result.lunar_month_chinesestring排盘结果-农历月份的中文表示
data.ming_li.paipan_result.lunar_day_chinesestring排盘结果-农历日期的中文表示
data.ming_li.paipan_result.lunar_hour_chinesestring排盘结果-农历时辰的中文表示
data.ming_li.paipan_result.ganzhi_yearstring排盘结果-干支年份
data.ming_li.paipan_result.ganzhi_monthstring排盘结果-干支月份
data.ming_li.paipan_result.ganzhi_daystring排盘结果-干支日期
data.ming_li.paipan_result.ganzhi_hourstring排盘结果-干支时辰
data.ming_li.paipan_result.animalstring排盘结果-生肖
data.ming_li.paipan_result.termstring排盘结果-节气
data.ming_li.paipan_result.is_leapstring排盘结果-是否为闰月
data.ming_li.paipan_result.gregorian_yearstring排盘结果-公历年份
data.ming_li.paipan_result.gregorian_monthstring排盘结果-公历月份
data.ming_li.paipan_result.gregorian_daystring排盘结果-公历日期
data.ming_li.paipan_result.gregorian_hourstring排盘结果-公历时辰
data.ming_li.paipan_result.week_numstring排盘结果-星期几的数字表示
data.ming_li.paipan_result.week_namestring排盘结果-星期几的中文表示
data.ming_li.paipan_result.is_todaystring排盘结果-是否为今天
data.ming_li.paipan_result.constellationstring排盘结果-星座
data.ming_li.paipan_result.ganshen_arrstring排盘结果-干神
data.ming_li.paipan_result.cang_gan_arrstring排盘结果-藏干
data.ming_li.paipan_result.ganzhi_shen_arrstring排盘结果-干支神
data.ming_li.wuxing_strength.wood_strengthstring五行强度-木的强度
data.ming_li.wuxing_strength.fire_strengthstring五行强度-火的强度
data.ming_li.wuxing_strength.earth_strengthstring五行强度-土的强度
data.ming_li.wuxing_strength.gold_strengthstring五行强度-金的强度
data.ming_li.wuxing_strength.water_strengthstring五行强度-水的强度
data.ming_li.wuxing_strength.yue_zhi_strengtharray五行强度-月支强度
data.ming_li.wuxing_strength.similararray五行强度-相似的五行
data.ming_li.wuxing_suitable
五行适宜分析
data.ming_li.wuxing_suitable.yong_shenstring用神
data.ming_li.wuxing_suitable.xi_shenstring喜神
data.ming_li.wuxing_suitable.ji_shenstring忌神
data.ming_li.wuxing_suitable.chou_shenstring仇神
data.ming_li.wuxing_suitable.suggeststring建议
data.ming_li.dishi
地势地支
data.ming_li.dishi.nianstring年柱
data.ming_li.dishi.yuestring月柱
data.ming_li.dishi.ristring日柱
data.ming_li.dishi.shistring时柱
data.ming_li.nayin
纳音分析
data.ming_li.nayin.nianstring年柱纳音
data.ming_li.nayin.yuestring月柱纳音
data.ming_li.nayin.ristring日柱纳音
data.ming_li.nayin.shistring时柱纳音
data.ming_li.xunkong
旬空分析
data.ming_li.xunkong.nianstring年旬空
data.ming_li.xunkong.yuestring月旬空
data.ming_li.xunkong.ristring日旬空
data.ming_li.xunkong.shistring时旬空
data.ming_li.char1_wuxing_analysestring名字第一个字的五行分析
data.ming_li.char2_wuxing_analysestring名字第二个字的五行分析
data.ming_li.combine_wuxing_analysestring名字组合的五行分析
data.ming_li.sancai_analyse
命理三才分析
data.ming_li.sancai_analyse.namestring三才名称
data.ming_li.sancai_analyse.scorestring三才评分
data.ming_li.sancai_analyse.levelstring三才等级
data.ming_li.sancai_analyse.caiyunstring财运
data.ming_li.sancai_analyse.gaishustring概述
data.ming_li.sancai_analyse.jiankangstring健康
data.ming_li.sancai_analyse.jiatingstring家庭
data.ming_li.sancai_analyse.shiyestring事业
data.ming_li.sancai_analyse.xinggestring性格
data.score
评分信息
data.score.wenhuanumber文化评分
data.score.ming_linumber命理评分
data.score.sheng_xiaonumber生肖评分
data.score.wu_genumber五格评分
data.score.overallnumber总评分
data.wenhua
名字文化分析
data.wenhua.yin_lvstring名字音律分析
data.wenhua.zi_xingstring名字字形分析
data.wenhua.char_idiom_arrstring名字相关的成语词语
data.wenhua.description_strstring名字相关的成语词语解释
data.wenhua.descriptionstring名字相关的成语词语解释
data.sheng_xiao
生肖分析
data.sheng_xiao.relation_descriptionstring生肖关系分析
data.sheng_xiao.suitable_bushoustring生肖适合的部首
data.wu_ge
五格分析
data.wu_ge.tian_ge
天格分析
data.wu_ge.ren_ge
人格分析
data.wu_ge.di_ge
地格分析
data.wu_ge.wai_ge
外格分析
data.wu_ge.zong_ge
总格分析
data.xxx_ge.meanstring五格-含义
data.xxx_ge.descriptionstring五格-描述
data.xxx_ge.ji_xiongstring五格-吉凶
data.xxx_ge.explainstring五格-解释

返回示例:

起名示例返回:

{

    "code": 200,

    "msg": "获取成功",

    "data": {

        "surname": "董",

        "sex": "2",

        "birthday": "2024-10-03 05:06:00",

        "type": "2",

        "list": [

            {

                "name": "益君"

            },

            {

                "name": "凌曦"

            },

            {

                "name": "宜静"

            },

            {

                "name": "依云"

            },

            {

                "name": "若晞"

            },

            {

                "name": "欣予"

            },

            {

                "name": "泽沐"

            },

            {

                "name": "雨梦"

            },

            {

                "name": "霁月"

            },

            {

                "name": "羽童"

            },

            {

                "name": "予兮"

            },

            {

                "name": "思渝"

            },

            {

                "name": "梦桐"

            },

            {

                "name": "佳菲"

            },

            {

                "name": "玉麒"

            },

            {

                "name": "淑可"

            },

            {

                "name": "楚晴"

            },

            {

                "name": "悦宸"

            },

            {

                "name": "雅涵"

            },

            {

                "name": "语兮"

            },

            {

                "name": "若诗"

            }

        ]

    },

    "text": {

        "copyright": "公共API https://qqlykm.cn"

    }

}

八字查询示例返回:

{
   "code": 200,
   "msg": "获取成功",
   "data": {
       "birthday": "2024-10-03 05:06:00",
       "name": {
           "surname": "董",
           "combine": "淑可",
           "surname_pinyin": "dǒng",
           "surname_wuxing": "木",
           "surname_bihua": "15",
           "surname_bihua_jian": "12",
           "surname_bushou": "艹",
           "combine_char1": "淑",
           "combine_char1_pinyin": "shū",
           "combine_char1_wuxing": "水",
           "combine_char1_bihua": "12",
           "combine_char1_bihua_jian": "11",
           "combine_char1_bushou": "氵",
           "combine_char1_description": "淑字的本义是指流水清澈,后来也指女性的外表美丽,心地善良。",
           "combine_char2": "可",
           "combine_char2_pinyin": "kě",
           "combine_char2_wuxing": "木",
           "combine_char2_bihua": "5",
           "combine_char2_bihua_jian": "5",
           "combine_char2_bushou": "口",
           "combine_char2_description": "五行为木、火,本义为唱,引申为许可、同意、准许等义。在人名用字中一般有适合、美好等含义,同时也为助字,起强调另外一个字的作用。"
       },
       "ming_li": {
           "paipan_result": {
               "lunar_year": "2024",
               "lunar_month": "09",
               "lunar_day": "01",
               "lunar_hour": "05",
               "lunar_year_chinese": "二零二四",
               "lunar_month_chinese": "九月",
               "lunar_day_chinese": "初一",
               "lunar_hour_chinese": "卯时",
               "ganzhi_year": "甲辰",
               "ganzhi_month": "癸酉",
               "ganzhi_day": "庚子",
               "ganzhi_hour": "己卯",
               "animal": "龙",
               "term": null,
               "is_leap": false,
               "gregorian_year": "2024",
               "gregorian_month": "10",
               "gregorian_day": "03",
               "gregorian_hour": "05",
               "week_num": 4,
               "week_name": "星期四",
               "is_today": false,
               "constellation": "天秤",
               "ganshen_arr": [
                   "偏财",
                   "伤官",
                   "日主",
                   "正印"
               ],
               "cang_gan_arr": [
                   [
                       "戊",
                       "乙",
                       "癸"
                   ],
                   [
                       "辛"
                   ],
                   [
                       "癸"
                   ],
                   [
                       "乙"
                   ]
               ],
               "ganzhi_shen_arr": [
                   [
                       "偏印",
                       "正财",
                       "伤官"
                   ],
                   [
                       "劫财"
                   ],
                   [
                       "伤官"
                   ],
                   [
                       "正财"
                   ]
               ]
           },
           "wuxing_strength": {
               "wood_strength": 4,
               "fire_strength": 0,
               "earth_strength": 0.8,
               "gold_strength": 12,
               "water_strength": 11.25,
               "yue_zhi_strength": [
                   "死",
                   "囚",
                   "休",
                   "旺",
                   "相"
               ],
               "similar": [
                   "金",
                   "土"
               ]
           },
           "wuxing_suitable": {
               "yong_shen": "金",
               "xi_shen": "土",
               "ji_shen": "木",
               "chou_shen": "水",
               "suggest": "日主天干(庚金)在命局五行中较弱,宜弥补同类五行来增加金的旺度。命局中财星多,财多身弱,喜用比劫。可补身弱财多之不足,帮身担财。因此金就是最喜五行。由于印星能够生身耗财。因此土是次喜五行。"
           },
           "dishi": {
               "nian": "养",
               "yue": "帝旺",
               "ri": "死",
               "shi": "胎"
           },
           "nayin": {
               "nian": "覆灯火",
               "yue": "剑锋金",
               "ri": "壁上土",
               "shi": "城头土"
           },
           "xunkong": {
               "nian": "寅卯",
               "yue": "戌亥",
               "ri": "辰巳",
               "shi": "申酉"
           },
           "char1_wuxing_analyse": "命局五行忌水,将会放大水五行的缺陷,变的急躁,易出祸端,平生多波折,人生起伏较大。",
           "char2_wuxing_analyse": "命局五行字忌木,将会放大木五行的缺陷,变的性格倔强,清高自大,“宁愿站着死,不愿跪着生”。",
           "combine_wuxing_analyse": "水木组合,水生木,木旺。这种组合的人心底善良,富有智慧,做事稳健,人缘好。其人意志坚定,为理想能奋斗到底,耐性佳,能忍受艰苦,依靠自身的努力,取得人生和事业上的成功。",
           "sancai_analyse": {
               "name": "木水木",
               "score": "90",
               "level": "佳",
               "caiyun": "财运佳,但须防意外牵累或损失。",
               "gaishu": "聪明好学,足智多谋,因“水”生“木”,其人富有仁慈心,成功运佳。",
               "jiankang": "身心健康,“木”偏旺,宜注意神经衰弱、肝胆方面的疾病。",
               "jiating": "因主观太强,家庭有些不太美满,若能忍耐,自无大碍。",
               "shiye": "事业运不错,可一展抱负,但谨防受朋友的拖累而受苦。",
               "xingge": "聪明机智,善谋略,刚柔相济。"
           }
       },
       "score": {
           "wenhua": 92.5,
           "ming_li": 38,
           "sheng_xiao": 95,
           "wu_ge": 90,
           "overall": 70.7
       },
       "wenhua": {
           "yin_lv": "董淑可声调为上声、阴平、上声,声律优美,朗朗上口。",
           "zi_xing": "淑为左中右结构,笔画11画;可为半包围结构,笔画5;字型优美,利于书写。",
           "char_idiom_arr": [
               "窈窕淑女",
               "终温且惠,淑慎其身",
               "淑质英才",
               "淑人君子",
               "楚楚可人",
               "幽兰不可俪徒自绕阳春鸢飞入鹰隼鱼目俪玙璠",
               "不可言传",
               "秀色可餐",
               "锐不可当"
           ],
           "description_str": "窈窕淑女 楚楚可人 终温且惠,淑慎其身 幽兰不可俪徒自绕阳春鸢飞入鹰隼鱼目俪玙璠 淑质英才 不可言传 淑人君子 秀色可餐 ",
           "description": [
               "窈窕淑女 楚楚可人",
               "终温且惠,淑慎其身 幽兰不可俪徒自绕阳春鸢飞入鹰隼鱼目俪玙璠",
               "淑质英才 不可言传",
               "淑人君子 秀色可餐"
           ]
       },
       "sheng_xiao": {
           "relation_description": "命主生肖属龙:辰戌冲,忌讳包含戌、狗的汉字;卯辰相害,忌讳包含卯、兔的汉字;辰自刑,忌讳包含辰、龙的汉字。",
           "suitable_bushou": "子、氵、水、雨、申、袁、示、鳥、酉、西、兆、非、羽、主、王、玉、君、帝、言、長、大、天、冠、衣、糸、巾、彡、日、馬、午、金、白、亠、爪"
       },
       "wu_ge": {
           "tian_ge": {
               "mean": "贵人相助兴家兴业的大吉数。",
               "description": "厚重",
               "ji_xiong": "吉",
               "explain": "反凶化吉象。位尊望重,建立基业。雅量厚重,足智多谋,善于协调,所谋如意,家门繁荣,福禄寿俱全。为大事大业可成,富贵发达的好暗示。属温和之首领运数。"
           },
           "ren_ge": {
               "mean": "欲望无休止的诽难运数。",
               "description": "增长",
               "ji_xiong": "凶",
               "explain": "欲望无止境,自信心过强,不容他人言语,多受诽谤攻击,而易致失败。始以其智谋,努力奋斗博得名利。待过中年,势渐趋下,内外酿出不和,难以发达到老,假使自身温顺富有,也不免内部背后是非不息。大多为半途中折之象。或因其他运的关系而陷于刑罚、孤独、死于逆难等。"
           },
           "di_ge": {
               "mean": "突破万难的刚柔兼备数。",
               "description": "刚强",
               "ji_xiong": "吉",
               "explain": "权威刚强,意志坚定,勇往直前,具有突破万难的气力。成就大功大业,但因赋性过刚,自我心强而恐与人不和,反招事非厄患,遂致失败,慎戒则为大吉。女性有此数者易流于男性,宜涵养女德,存主温和,福禄自然随之。先天条件弱的妇女反用此数为妥。"
           },
           "wai_ge": {
               "mean": "安稳余庆吉人天相数。",
               "description": "安稳",
               "ji_xiong": "吉",
               "explain": "天德地祥俱备,天地人和。财禄丰盈,富裕安稳,家势盛大,万宝朝宗之运。然而满极必损,盈极则亏。若其他要素配合不周者,恐或如流水而下,成为所谓乐极生悲之象。此数理为天赋之美,安稳吉庆终生。"
           },
           "zong_ge": {
               "mean": "权贵显达的意外惠泽数。",
               "description": "宝马金鞍",
               "ji_xiong": "吉",
               "explain": "侥幸多望之格,常得长上之庇护。若能得长辈提掖,其成功将势如破竹。且此数理者品性温良,大有爱护他人之德。家门隆昌繁荣,为至上的吉数,最适合女性用。"
           }
       }
   },
   "text": {
       "copyright": "公共API https://qqlykm.cn"
   }
}

错误码类型说明
200int请求成功
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://qqlykm.cn/api/qiming/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://qqlykm.cn/api/qiming/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://qqlykm.cn/api/qiming/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://qqlykm.cn/api/qiming/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://qqlykm.cn/api/qiming/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://qqlykm.cn/api/qiming/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: 'qqlykm.cn',
  path: '/api/qiming/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: 'qqlykm.cn',
  path: '/api/qiming/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://qqlykm.cn/api/qiming/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://qqlykm.cn/api/qiming/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://qqlykm.cn/api/qiming/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://qqlykm.cn/api/qiming/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
业务上线

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

数据驱动未来

立即注册

客服微信

微信昵称

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

联系我们
客服QQ
614881189

商务号,添加请说明来意

在线咨询
点击咨询

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

返回顶部