小红书 API 接入教程(Java):用 HttpClient 跑通第一个请求
小红书数据
API教程
Java
这篇教程带你用 Java 接入小红书(RedNote / Xiaohongshu)数据接口。无需自建爬虫——Rnote API 已经把采集基础设施备好,你用 Java 11+ 内置的 HttpClient 发一个带 X-API-Key 头的 GET 请求即可。也可参考 Python、Node.js、Go 与 PHP 版本。
第一步:注册获取 API Key
前往注册页创建账户并验证邮箱,获取免费额度与 API Key。
第二步:发起第一个请求
Java 11+ 标准库 java.net.http.HttpClient,无需任何第三方依赖:
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
public class Quickstart {
public static void main(String[] args) throws Exception {
String keyword = URLEncoder.encode("美食推荐", StandardCharsets.UTF_8);
String url = "https://rnote.dev/api/v2/crawler/search/notes"
+ "?keyword=" + keyword + "&page=1";
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("X-API-Key", "YOUR_API_KEY")
.GET()
.build();
HttpResponse<String> resp = HttpClient.newHttpClient()
.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.statusCode());
System.out.println(resp.body());
}
}
跑通后,把端点换成 note/image(图文详情)、user/info(博主信息)等即可,参数说明见接口文档。
第三步:封装一个带重试的调用
import java.net.URI;
import java.net.http.*;
import java.util.Map;
import java.util.StringJoiner;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
static String call(String path, Map<String, String> params, int retries) throws Exception {
StringJoiner q = new StringJoiner("&");
for (var e : params.entrySet()) {
q.add(e.getKey() + "=" + URLEncoder.encode(e.getValue(), StandardCharsets.UTF_8));
}
String url = "https://rnote.dev/api/v2/crawler/" + path + "?" + q;
HttpClient client = HttpClient.newHttpClient();
for (int i = 0; i < retries; i++) {
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("X-API-Key", "YOUR_API_KEY")
.GET().build();
HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
if (resp.statusCode() == 200) return resp.body();
Thread.sleep((long) Math.pow(2, i) * 1000); // 指数退避
}
throw new RuntimeException("请求多次失败");
}
仅成功请求(HTTP 2xx)扣费,失败重试不额外计费,所以可以放心加重试逻辑。
计费与额度
按请求计费、无月费、无最低消费;注册即送免费额度。充值方式与当前优惠见定价页。
下一步
免费注册,现在就用 Java 发出你的第一个请求。