接口文档

为您提供全面的新手入门文档和教程,方便您轻松上手。

接口目录
调用次数:5 次

姓氏起源查询

正常 全站会员免费

为用户提供详尽的姓氏历史背景、来源及演变过程,帮助用户深入了解自己姓氏背后的故事和文化内涵。

更新日期
2024-02-17
免费额度
0
每日限制
无限制
请求频率限制
1秒15次

接口地址:https://api.23bt.cn/api/surname/index

返回格式:application/json

请求方式:HTTPGET

请求示例:https://api.23bt.cn/api/surname/index?key=你的key&xing=输入姓

请求HEADER:

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

请求参数说明:

名称必填类型示例值说明
keystring35kj5jnlj53453kl5j43nj5接口密钥,在控制台->密钥管理查看
xingstring姓(如:冯)

返回参数说明:

名称类型说明
codeint状态码
msgstring状态信息
datastring请求结果数据集
debugstring/array调试数据
exec_timefloat执行耗时
user_ipstring客户端IP

免责声明:

本服务仅供个人学习、学术研究目的使用,未经授权,请勿分享、传播输入及生成的文本、图片内容。用户在从事与本服务相关的一切行为(包括但不限于访问浏览、利用、转载、宣传介绍)时,应以善意且谨慎的态度行事并承担相应的风险和责任。用户需确保不得利用本服务进行危害国家安全和社会公共利益、扰乱经济秩序和社会秩序、侵犯他人合法权益等法律、行政法规禁止的活动,并且自定义输入文本不得包含违反法律法规、政治相关、侵犯他人合法权益的内容。对于用户因使用本服务而导致的任何损失或风险,包括但不限于由于使用本服务而产生的错误、疏忽、中断、删除、故障、延迟或通讯线路故障所导致的任何损失或损害,本服务的开发者将不承担任何责任。

返回示例:

{"xing": "赵",        "intro": "赵姓起源<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp; 出自嬴姓,形成于西周,祖先是伯益,具体始祖是造父。伯益为颛顼帝裔孙,被舜赐姓嬴。造父为伯益的9世孙,是西周时著名的驾驭马车的能手,他在桃林一带得到8匹骏马,调训好后献给周穆王。周穆王配备了上好的马车,让造父为他驾驶,经常外出打猎、游玩,有一次西行至昆仑山,见到西王母,乐而忘归,而正在这时听到徐国徐偃王造反的消息,周穆王非常着急,在此关键时刻,造父驾车日驰千里,使周穆王迅速返回了镐京,及时发兵打败了徐偃王,平定了叛乱。由于造父立了大功,周穆王便把赵城赐给他,自此以后,造父族就称为赵氏。周穆王传周幽王时,因幽王无道,造父的7世孙叔带离周仕晋,从此赵氏子孙世代为晋大夫。到战国初年,叔带的12世孙赵襄自联合魏氏、韩氏三家分晋,建立赵国。至他的孙子赵籍时,正式获得了周烈王的承认,与韩、魏两家并列为诸侯。公元前222年,赵国为秦国所灭,其王室贵族和平民百姓纷纷以国名为姓,称赵氏。<P>  出自他族改姓。如汉朝时有赵安稽,本匈奴人;唐朝时有赵曳天,本南蛮人;五代时有赵国珍,本牂牁(今广西、贵州一带)蛮族人。<BR> </P>
<P>聚集地[迁徙分布]</P>
<P>&nbsp;&nbsp;&nbsp; 秦代,真定人(今河北正定)赵佗任南海郡龙川县令,后为南海尉,于秦末兼并桂林、南海和象三郡,建立南越国,汉高祖时受封为南越王。此后,赵佗的子孙繁衍于今广东、广西一带。东汉末年,京师遭董卓之乱,洛阳人赵达避难迁居江东。唐高宗总章年间,中原人赵端随陈政、陈元光父子入闽开辟漳州。五代时,刘龑在广州建立南汉政权,洛阳人赵光裔、光逢、光胤三兄弟因此而在南海安家;开封人赵廷隐、赵崇韬父子因仕后蜀而在四川成都定居。南宋初,开封人赵用贤随宋高宗赵构南逃,移居江苏常熟,郑州人赵蕃移居江西上饶。南宋灭亡后,宗室赵氏散逃至澎湖、潮阳等地,后在闽、粤一带发展繁衍。</P>
<P>&nbsp;&nbsp;&nbsp; 赵,是中国的一个大姓。在台湾亦然,被排为台湾姓氏的第四十七位。赵姓移居台湾,是清朝康熙二十二年(公元1682年)的事。当时,郑成功的儿子郑经就安置了赵、黄、董、柯、李等五姓,后来台湾各地的赵姓随之增多。康熙六十年(公元1721年)朱一贵起义,下淡水港有一名义民赵姓和;雍正初年,有赵姓招募福建漳州和泉州两地的佃人,乾隆年间,有泉州人赵普、赵晋两人。目前,全省各地的赵姓人士,以台中、台南和基隆三地为最多。后又有不少人移居海外,分布于欧美及东南亚一些国家和地区。</P>
<P><BR>堂号</P>
<P>  "半部堂":五代后周时,赵普助赵匡胤发动"陈桥兵变"建立宋朝。宋太祖赵匡胤于是封赵普为宰相。他又提出了"杯酒释兵权"的方法削减了地方武装,巩固了中央集权,想方设法,把天下治理得很好。宋太祖就问:"爱卿!你怎样把国家治得这么好的?"赵普回答说:"我不过是靠了半部《论语》罢了!"赵普死后,家人整理他的书箱,果真什么宝贝也没有,只有他活着的时候常读的一部《论语》。</P>
<P>  "琴鹤堂":宋朝时殿中侍御史赵忭是个清廉爱民的好官,人称"铁面御史"。他当成都知府的时候,一清如水。他看到人民安居乐业,就高兴地弹琴取乐。他养了一只鹤,时常用鹤毛的洁白勉励自己不贪污;用鹤头上的红色勉励自己赤心为国。他穷得什么东西都没有,只有一琴一鹤。<BR>  赵氏还以"天水"、"孝思"、"谷治"、"萃涣"等为堂号。&nbsp; </P>
<P><BR>历史名人: </P>
<P>&nbsp;&nbsp;&nbsp; 赵匡胤:本为后周大将,"陈桥兵变",代周为帝,建立宋朝,立国320之久,使赵姓的宗族声望达到了最为辉煌的时期。<BR>  赵文渊:北周著名书法家,擅长楷、隶书。当时碑文多出其手,又在西魏时奉命编定了一部六体书法字典。<BR>  赵 胜:平原君,以"食客数千人"而著称,是赵氏有史以来最负盛名的人物。<BR>  赵 雍:即赵武灵王,他提倡"胡服骑射",始创骑兵,这是中国军事史上的一大进步。<BR>  赵之堔:清代"西泠八家"之一。<BR>  赵之廉:清代杰出书画家、篆刻家。其书、画、篆刻对后世都有一定影响,与任伯年、吴昌硕并称为"清末三大画家"。<BR>  赵 翼:明代史学家、文学家。长于史学,考据精赅,其诗与袁枚、蒋士铨齐名,并称"江右三大家"或"乾隆三大家"。<BR>  赵孟頫:元代杰出书画家。精于正、行书和小楷,其笔法园转遒丽,人称"赵体"。<BR>  赵 云:三国时蜀国大将,为"五虎上将"之一。<BR>  赵公明:相传秦时得道于终南山。人称之为"赵公元帅",被奉为"财神"。</P>"   "debug": "本站所有接口仅限学习使用6456479" }


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

<?php
/**
 * API请求DEMO
 * 
 * 本demo支持GET与POST请求,同时支持签名验证与无需签名。
 */

//你申请的key密钥
$API_KEY = '你的接口密钥,登录控制台后在密钥管理页面申请';

//API接口地址
$API_URL = 'https://api.23bt.cn/api/surname/index';

$get_post_data = array(
    //接口参数,一行一个,可按照接口文档-请求参数 的参数填写,或者直接复制开发工具下面的测试代码。
    'key' => $API_KEY,
	'参数名' => '参数值',
);

//签名校验的 SK:(在用户控制台https://api.23bt.cn/user/key的秘钥安全设置->签名校验 开启后才会生效,没开启签名校验留空即可。)
$sk = '56777ab62ff752fbd57ab7228fc2fc43';

/*发起请求API接口:
第1个参数:API接口地址URL,跟上面的同名变量相对应,无需更改。
第2个参数:API接口参数数组,跟上面的同名变量相对应,无需更改。
第3个参数:请求协议(GET或POST),一般默认GET,部分接口需要POST请求,根据实际情况修改为POST即可。
第4个参数:是否验证签名,true验证签名,否则false不验证签名,根据用户控制台 https://api.23bt.cn/user/key 的 秘钥安全设置->签名校验 开启后才会生效,如没开启,填写false即可。
第5个参数:如果第4个参数开启验证签名,此处必须填写 SK ,跟上面的同名变量相对应,无需更改。
 */
$resdata = api::send($API_URL, $get_post_data, 'GET', true, $sk);  //发起请求,注意这里要选择接口支持的协议,默认GET,可选POST

//打印请求结果
print($resdata);
///////////////你的业务代码可写在这里处理API返回的数据

/**
 * API请求类
 */
class api
{
    public static function send($API_URL, $get_post_data, $type, $ifsign, $sk)
    {
        $get_post_data = http_build_query($get_post_data);
        if ($ifsign) {
            $sign = md5($get_post_data . $sk);
            $res = self::send_curl($API_URL, $type, $get_post_data, $sign);
        } else {
            $res = self::send_curl($API_URL, $type, $get_post_data, null);
        }
        return $res;
    }
    //封装好的CURL请求函数,支持POST|GET
    public static function send_curl($API_URL, $type, $get_post_data, $sign)
    {
        $ch = curl_init();
        if ($type == 'POST') {
            curl_setopt($ch, CURLOPT_URL, $API_URL);
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $get_post_data);
        } elseif ($type == 'GET') {
            curl_setopt($ch, CURLOPT_URL, $API_URL . '?' . $get_post_data);
        }
        if ($sign) {
            curl_setopt($ch, CURLOPT_HTTPHEADER, ['sign:' . $sign]);
        }
        curl_setopt($ch, CURLOPT_REFERER, $API_URL);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT, 10);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        $resdata = curl_exec($ch);
        curl_close($ch);
        return $resdata;
    }
}





//jQuery-Ajax
$.ajax({
	url: 'https://api.23bt.cn/api/surname/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://api.23bt.cn/api/surname/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://api.23bt.cn/api/surname/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://api.23bt.cn/api/surname/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://api.23bt.cn/api/surname/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: 'api.23bt.cn',
  path: '/api/surname/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: 'api.23bt.cn',
  path: '/api/surname/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://api.23bt.cn/api/surname/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://api.23bt.cn/api/surname/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://api.23bt.cn/api/surname/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://api.23bt.cn/api/surname/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`事件。
参数名 填写参数值

仅需三步即可快速接入

1
在线调试

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

2
生成代码

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

3
业务上线

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

数据驱动未来

立即注册

客服微信

qzry07

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

返回顶部