需先获取api密钥、构造http请求并处理json响应与流式返回;依赖okhttp 4.12+和jackson 2.15+,jdk≥17;非流式请求设bearer鉴权与messages数组;流式响应需正确解析sse格式;错误时按状态码分类处理并重试。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在Java项目中调用DeepSeek API完成文本生成任务,需先获取API密钥、构造符合要求的HTTP请求,并正确处理JSON响应体与流式返回场景。
添加依赖与准备环境
在pom.xml中引入OkHttp 4.12+和Jackson Databind 2.15+依赖,低版本OkHttp不支持HTTP/2,会导致流式响应解析失败。
这一步操作起来很简单,直接把文件拖进去就行。
确保JDK版本≥17,DeepSeek官方SDK最低要求Java 17,使用Java 8编译会触发NoSuchMethodError。
构造基础请求(非流式)
第一步:创建OkHttpClient实例,启用连接池复用,避免频繁新建连接导致超时。
第二步:构建RequestBody,将model设为deepseek-chat,messages字段必须是JSON数组格式,至少包含一个role为user的message对象。
第三步:设置Headers,Authorization字段值为Bearer 【your_api_key】,Content-Type必须为application/json;漏掉Bearer前缀或写成bearer将直接返回401错误。
第四步:执行同步请求,用Response.body().string()读取完整响应,再用Jackson反序列化为Map或自定义Result类。
处理流式响应(SSE)
方法一:用OkHttp的EventSource扩展库(okhttp-eventsource)监听data事件,每条data行需手动去除前缀并JSON.parse。
方法二:手动解析SSE流——设置Accept头为text/event-stream,用ResponseBody.source()逐行读取,跳过event:、id:、retry:等控制行,只处理以data:开头的行,【data:后必须紧跟一个空格,否则Jackson解析会报错】。
方法三:改用Apache HttpClient +自定义InputStreamReader,对换行符做兼容处理(\r\n与\n都要识别),避免Linux/macOS下因换行差异导致消息截断。
错误响应与重试策略
检查响应码是否为200,非200时直接读取error.message字段,常见错误包括invalid_api_key、context_length_exceeded、rate_limit_exceeded。
对429状态码实施指数退避重试,首次延迟100ms,每次翻倍,最多3次;超过阈值立即抛出RateLimitException,不要静默吞掉异常。
反序列化失败时捕获JsonProcessingException,打印原始响应体用于调试,不要只打印“解析失败”这种无意义提示。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











