百度API的使用教程主要涉及注册申请、接口选择、代码调用及结果处理等环节,以下是详细步骤说明:

注册百度智能云账号并创建应用
- 注册账号:访问百度智能云官网(https://cloud.baidu.com/),点击“注册”按钮完成手机号验证和邮箱注册,建议使用企业邮箱以便通过实名认证。
- 实名认证:登录后在“账号中心”完成个人或企业实名认证,企业认证需提供营业执照等材料,认证通过后才能调用付费API。
- 创建应用:进入“管理控制台”→“人工智能”→“管理”,点击“创建应用”,填写应用名称(如“测试项目”)并选择应用类型(默认“默认应用”),创建后获取API Key(AK)和Secret Key(SK),这是调用接口的身份凭证,需妥善保管。
选择并开通目标API服务
- 浏览API市场:在控制台“产品服务”中分类查找所需API,图像技术”“自然语言处理”“语音技术”等,或直接搜索关键词(如“图像识别”)。
- 开通服务:点击目标API卡片进入详情页,选择“开通服务”,部分免费API可直接使用,付费API需绑定充值方式(支持微信、支付宝等),开通后可在“服务管理”查看已开通接口的配额和调用次数限制。
获取Access Token(调用凭证)
大多数百度API需要通过Access Token(AT)进行身份验证,获取方式如下:
import requests
def get_access_token():
url = "https://aip.baidubce.com/oauth/2.0/token"
params = {
"grant_type": "client_credentials",
"client_id": "你的API Key",
"client_secret": "你的Secret Key"
}
response = requests.post(url, params=params)
return response.json()["access_token"]
access_token = get_access_token()
注意事项:
- AT有效期为30天,需定时刷新并避免频繁请求(建议缓存复用)。
- 免费用户每日AT获取次数有限,超限将返回错误码
18(Access Token invalid)。
调用API接口(以图像识别为例)
以“通用物体识别”接口为例,说明完整调用流程:
接口参数准备
| 参数名 | 必填 | 说明 |
|---|---|---|
| image | 是 | 图片base64编码或URL地址(需公网可访问),base64编码需去除前缀data:image/xxx;base64, |
| top_num | 否 | 返回结果数量(1-10,默认5) |
| baike_num | 否 | 返回百科信息数量(0-10,默认0) |
代码实现(Python示例)
import base64
import requests
def image_recognition(image_path, access_token):
request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v2/advanced_general"
with open(image_path, "rb") as f:
image_base64 = base64.b64encode(f.read()).decode("utf-8")
headers = {"Content-Type": "application/x-www-form-urlencoded"}
params = {
"access_token": access_token,
"image": image_base64,
"top_num": 5
}
response = requests.post(request_url, headers=headers, data=params)
return response.json()
result = image_recognition("test.jpg", access_token)
print(result)
返回结果解析
接口返回JSON格式数据,示例:

{
"log_id": 123456789,
"result_num": 3,
"result": [
{
"score": 0.987,
"root": "植物",
"name": "玫瑰",
"baike_info": {"baike_url": "https://baike.baidu.com/item/玫瑰"}
},
...
]
}
score:置信度(0-1),越接近1表示识别准确率越高。root:分类根节点,name为具体分类名称。
错误处理与优化
- 常见错误码:
18:AT无效或过期,需重新获取。18(配额不足):免费版每日调用量用尽,需升级付费版。111:图片格式不支持,仅支持jpg、png等格式。
- 性能优化:
- 使用异步请求(如
aiohttp)提高并发处理能力。 - 对高频调用结果进行本地缓存,减少API请求次数。
- 使用异步请求(如
多语言调用示例(Java)
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Base64;
public class BaiduAPI {
public static String getAccessToken(String apiKey, String secretKey) throws Exception {
URL url = new URL("https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=" + apiKey + "&client_secret=" + secretKey);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String result = in.readLine();
in.close();
return result.split("\"")[7]; // 提取access_token
}
public static String callAPI(String accessToken, String imageBase64) throws Exception {
URL url = new URL("https://aip.baidubce.com/rest/2.0/image-classify/v2/advanced_general?access_token=" + accessToken);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
String param = "image=" + imageBase64;
conn.getOutputStream().write(param.getBytes());
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
return in.readLine();
}
}
相关问答FAQs
Q1:百度API的免费额度如何查询?是否支持升级?
A1:登录百度智能云控制台,进入“费用中心”→“资源监控”,可查看各API的免费调用次数和已使用量,如需升级,可在对应API的“服务管理”页面点击“变更配置”,选择按量计费或包年包月套餐,付费后即时生效。
Q2:调用API时提示“签名错误”如何解决?
A2:签名错误通常由AK/SK错误或参数格式问题导致,请检查:① 确认AK/SK是否正确复制(无多余空格);② 检查请求参数是否按官方文档要求编码(如base64图片需去除前缀);③ 部分接口需在URL中拼接access_token参数,而非放在请求体中,若仍无法解决,可使用百度智能云提供的“签名调试工具”比对请求格式。

