Как отправить HTTP-запрос в среду загрузки Spring? - PullRequest
0 голосов
/ 13 февраля 2019

Я хочу отправить запрос 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 "}

1 Ответ

0 голосов
/ 13 февраля 2019

JSONObject будет принимать значение типа объекта, чтобы вы могли преобразовать значение appId в long или любые другие типы данных, которые принимаются при удаленном вызове http.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...