Я хочу отправить запрос POST с объектом JSON на указанный URL-адрес, но он всегда не удался.
Я уже проверил все данные, чтобы убедиться, что они правильные, но когда я их отправляю, онипохоже, что он изменился, так что конечный сервер не может правильно обработать мой запрос.
public static String translate(String query, String from, String to) {
JSONObject response = new JSONObject();
JSONObject request = new JSONObject();
//Generate a random number
int salt = getRandom();
//Generate the sign
String sign = encodeMD5Hex(APP_ID + query + salt + KEY);
//Put all parameters into the request
request.put("q", query);
request.put("from", from);
request.put("to", to);
request.put("appid", APP_ID);
request.put("salt", salt);
request.put("sign", sign);
return sendPOSTRequest(request);
}
private static String encodeMD5Hex(String data){
return DigestUtils.md5Hex(data);
}
private static int getRandom() {
return (int) ((Math.random() + 1) * 10000);
}
private static String sendPOSTRequest(JSONObject data) {
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<JSONObject> entity = new HttpEntity(data, headers);
String answer = restTemplate.postForObject(BAIDU_TRANS_API_URL, entity, String.class);
return answer;
}
Я полагаю, это неправильно в appid.Ответ всегда говорит мне, что у меня неправильный appid, даже если я на 100% уверен, что это правильно.А вот формат параметра appid: name: appid type: INT Но 17-значный номер int полностью находится вне диапазона.
Ответ: {"error_code": "52003", "error_msg": "UNAUTHORIZEDUSER "}