讲师中心 微信公众号

工具推荐

视频效率加速
Seko
Seko

AI短剧一键生成成片

Laper
Laper

剧本策划到成片协作

updream

一键生成高质量推广成片

剧云
剧云

中文短剧剧本制作平台

Java初学者项目实战:实现一个简单的文本翻译工具

酷静姑娘_4046

酷静姑娘_4046

发布时间:2026-01-27 17:08:03

|

396人浏览过

|

来源于php中文网

原创

Java初学者可用不到200行代码实现文本翻译工具,核心是掌握HttpURLConnection发起POST请求、正确设置请求头、区分成功与错误响应流、用org.json安全解析JSON及UTF-8解码,避免硬编码解析和默认编码乱码。

java初学者项目实战:实现一个简单的文本翻译工具

Java初学者用不到 200 行代码就能做出一个能跑通的文本翻译工具,关键不是调 API,而是搞懂怎么组织请求、处理响应、应对常见失败——否则你连 403 Forbidden 和 429 Too Many Requests 都分不清,更别说调试。

用 HttpURLConnection 发起翻译请求,别急着上 OkHttp

初学者直接引入第三方 HTTP 库,容易把网络层、JSON 解析、业务逻辑全搅在一起。先用 JDK 自带的 HttpURLConnection 把流程走通,问题定位更直接。

  • 必须显式设置 setDoOutput(true) 才能发 POST 请求
  • 请求头要加 Content-Type: application/json; charset=utf-8,否则很多翻译 API(如腾讯、百度)直接返回 400 Bad Request
  • 记得调用 connect() 后再获取 getInputStream() 或 getErrorStream(),否则可能卡住或抛 IOException
  • 响应码不是 200 时,getInputStream() 会抛异常,得用 getErrorStream() 读错误体

解析 JSON 响应:用 org.json 而不是手撕字符串

别用 String.indexOf() 或 split() 去“提取”翻译结果——API 响应结构稍一变就全崩。引入轻量级 org.json(Maven 坐标:org.json:json:20231013)就够了。

Baidu Nearby / 百度能力集合
Baidu Nearby / 百度能力集合

百度能力集合,提供百度搜索和百度地图路线规划功能,包含网页搜索、路线规划和附近场所推荐,适用于搜索网页、规划出行路线及查找附近餐饮、景点、酒店等位置服务。

下载
  • 检查字段是否存在再取值,比如 json.has("trans_result"),避免 JSONException: JSONObject["trans_result"] not found
  • 数组字段要用 getJSONArray(),对象字段用 getJSONObject(),类型错一次就 ClassCastException
  • 中文返回乱码?确保用 new String(bytes, StandardCharsets.UTF_8) 解码,别依赖平台默认编码
String response = new String(Objects.requireNonNull(conn.getInputStream()).readAllBytes(), StandardCharsets.UTF_8);
JSONObject json = new JSONObject(response);
if (json.has("error_code")) {
    System.err.println("API error: " + json.getString("error_msg"));
} else if (json.has("trans_result")) {
    JSONArray results = json.getJSONArray("trans_result");
    for (int i = 0; i < results.length(); i++) {
        System.out.println(results.getJSONObject(i).getString("dst"));
    }
}

处理常见错误:从 401 Unauthorized 到超时重试

翻译 API 不像本地方法,它随时可能拒绝你。硬编码密钥、不设超时、不判状态码,第一次部署到别人机器上就挂。

立即学习“Java免费学习笔记(深入)”;

  • 401 Unauthorized:密钥无效或未传 app_id/access_token;检查是否漏了签名计算(如百度翻译需 sign = md5(appid+q+salt+secretKey))
  • 429 Too Many Requests:没加请求间隔,连续调用触发限流;初学阶段加 Thread.sleep(1000) 最简单有效
  • 连接超时:设置 setConnectTimeout(5000) 和 setReadTimeout(5000),否则卡死在 connect() 上
  • 空响应或 null:服务端返回空体或网络中断,readAllBytes() 可能返回空数组,需判空

真正难的不是写完“能翻”,而是让程序在密钥错、网络抖、API 改版时还能给你一句明白话——比如打印出完整错误响应体,而不是只抛个 IOException。这点老手也常漏。

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

超级麦吉

一款通过数字员工协作完成调研、数据分析与文档制作的AI办公平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

SoundView
SoundView Hot

SoundView是一款面向跨境电商的视频翻译、配音和本地化 AI 创作平台。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2335

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

3842

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

1276

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

4459

2025.09.10

Java Maven专题
Java Maven专题

本专题聚焦 Java 主流构建工具 Maven 的学习与应用,系统讲解项目结构、依赖管理、插件使用、生命周期与多模块项目配置。通过企业管理系统、Web 应用与微服务项目实战,帮助学员全面掌握 Maven 在 Java 项目构建与团队协作中的核心技能。

4700

2025.09.15

Java Maven/Gradle 构建与依赖管理合集
Java Maven/Gradle 构建与依赖管理合集

系统讲解 Java 项目构建工具的使用与进阶配置,涵盖 Maven 的 POM 文件结构、生命周期(clean/compile/package/install/deploy)与插件机制、依赖范围(compile/provided/test/runtime)与传递依赖管理、多模块聚合与继承、私有 Nexus 仓库发布,以及 Gradle 的 Groovy / Kotlin DSL 语法、Task 自定义与增量构建、依赖版本目录(Versi

409

2026.05.09

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

7499

2023.08.02

c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

569

2023.09.22

Go-Zero API开发使用教程
Go-Zero API开发使用教程

本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。

20

2026.11.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
dev.java 官方:Learn Java
dev.java 官方:Learn Java

共0课时 | 0人学习

Java JDBC数据库连接官方教程
Java JDBC数据库连接官方教程

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn