基于Retrofit框架的金山API翻译功能案例
这里使用的API如下,可使用浏览器或postman查看。
https://dict-mobile.iciba.com/interface/index.php?c=word&m=getsuggest&nums=1&is_need_mean=1&word=hello
以上为翻译hello单词意思,如需要翻译其他,只需改变word=hello的值即可。
此次访问使用的是get请求,返回一个Json字符串,并对Json字符串进行反序列化转换为JavaBean。另外JavaBean可使用网站自动生成,输入返回的Json对象即可。网址如下:
返回的json内容如下:
{
"message": [
{
"key": "hello",
"paraphrase": "n.“喂”的招呼声或问候声;int.哈喽,喂,你好,您好,表示问候,打招呼",
"value": 0,
"means": [
{
"part": "int.",
"means": [
"哈喽,喂",
"你好,您好",
"表示问候",
"打招呼"
]
},
{
"part": "n.",
"means": [
"“喂”的招呼声或问候声"
]
}
]
}
],
"status": 1
}
效果图:
案例代码:
-
需要依赖的第三方库
//在build.gradle文件下 implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
-
AndroidManifest.xml中打开网络访问权限
<uses-permission android:name="android.permission.INTERNET"/>
-
JavaBean:
Translation.java
public class Translation { private List<Message> message; private int status; public void setMessage(List<Message> message) { this.message = message; } public List<Message> getMessage() { return message; } public void setStatus(int status) { this.status = status; } public int getStatus() { return status; } @Override public String toString() { return "Translation{" + "message=" + message + ", status=" + status + '}'; } }
Message.java
public class Message { private String key; private String paraphrase; private int value; private List<Means> means; public void setKey(String key) { this.key = key; } pub