百度翻译接口文档
http://api.fanyi.baidu.com/product/113
后端代码
@RestController
public class TranslationController {
private String APPID = "百度翻译账号提供appid";
private String secret_key = "百度翻译账号提供key";
@PostMapping("/translate")
public Object translate(@RequestBody Map<String,String> data) throws Exception {
try {
//获取请求参数
String q = data.get("q");
String from = data.get("from");
String to = data.get("to");
//随机数
Random random = new Random(10);
String salt = Integer.toString(random.nextInt());
//MD5加密
//自定义的全局变量 appid和密钥
String appid = APPID + q + salt + secret_key;
String sign = SecureUtil.md5(appid);
//封装请求参数
MultiValueMap<String, String> paramMap = new LinkedMultiValueMap<>();
paramMap.add("q",q);
paramMap.add("from",from);
paramMap.add("to",to);
paramMap.add("appid",APPID);
paramMap.add("salt",salt);
paramMap.add("sign",sign);
String url = "http://api.fanyi.baidu.com/api/trans/vip/translate";
//封装请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
HttpEntity<MultiValueMap<String, String>> httpEntity = new HttpEntity<>(paramMap,headers);
//调用百度翻译API,发送请求,得到结果
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<Object> response = null;
for (int i = 0; i < 3; i++) {
response = restTemplate.postForEntity(url, httpEntity, Object.class);
if (response.getStatusCodeValue()==200){
break;
}
}
return response;
}catch (Exception e){
e.printStackTrace();
return null;
}
}
}
调用方法
PageData traList = TranslateBaiDu(ppd.getString("NAME"));
public PageData TranslateBaiDu(String name) throws Exception{
try {
Map<String,String> dataTranslate = new HashMap<>();
dataTranslate.put("q",name);
dataTranslate.put("from","auto");
dataTranslate.put("to","jp");//转日语
String jpCompanyName = "";
ResponseEntity<Object> Translate = (ResponseEntity<Object>) translationController.translate(dataTranslate);
if (Translate!=null){
LinkedHashMap TranslateBody = (LinkedHashMap) Translate.getBody();
ArrayList nameList = (ArrayList) TranslateBody.get("trans_result");
if (nameList!=null) {
LinkedHashMap TranslateList = (LinkedHashMap) nameList.get(0);
jpCompanyName = (String) TranslateList.get("dst");
}
}
PageData pd = new PageData();
pd.put("jp",jpCompanyName);
return pd;
}catch (Exception e){
e.printStackTrace();
PageData pd = new PageData();
pd.put("jp","");
return pd;
}
}