500 при попытке опубликовать сообщение в базе чата с помощью restTemplate - PullRequest
0 голосов
/ 01 июня 2018

Я могу отправлять сообщения в Chatbase https://chatbase.com/api/message через запросы SoapUI и curl.Однако, когда я пытаюсь опубликовать с помощью restTemplate на той же конечной точке, используя те же заголовки и то же тело, я получаю {"reason": "Unknown server error.", "status": 500}.

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);

MultiValueMap<String, String> body = new LinkedMultiValueMap<>();
body.add("api_key", "myApiKey");
body.add("platform", "Web"); 
body.add("user_id", "1");
body.add("type", "user");`

HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<>(body, headers);

restTemplate.exchange("https://chatbase.com/api/message", HttpMethod.POST, request, Void.class);

Я перепробовал все, что только мог, любая помощь приветствуется.

Ответы [ 3 ]

0 голосов
/ 13 июня 2018

После дальнейшего исследования было установлено, что MultiValueMap пропускает поля как список, вызвавший ошибку.

0 голосов
/ 14 июня 2018

Вот реализация, которая в итоге сработала для нас.

    Long stamp = System.currentTimeMillis();

    HttpHeaders headers = new HttpHeaders();
    headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));

    JSONObject body = new JSONObject();
    body.put("api_key", key);
    body.put("type", user);
    body.put("platform", "Web");
    body.put("message", userMessage);
    body.put("intent", intentName);
    body.put("version", "1.0");
    body.put("user_id", userId);
    body.put("not_handled", notHandled);
    body.put("time_stamp", stamp);

    HttpEntity<Object> request = new HttpEntity<>(body, headers);

    String url = "https://chatbase.com/api/message";

    restTemplate.exchange(url, HttpMethod.POST, request, Void.class);

Спасибо за помощь Chatbase!Большое время отклика по электронной почте и переполнение стека.

0 голосов
/ 01 июня 2018

Я не знаком с MultiValueMap, но возможно ли, что он сериализует ключи неожиданным образом (возможно, помещает значения в список)?Я заметил, что наш код в настоящее время заставляет это возвращать 500, и я исправляю это сейчас.

Можно ли предоставить полезную нагрузку JSON вашего запроса?

В противном случае, если это не 'не работает для вас, обратитесь к chatbase-feedback@google.com с вашим ключом API, и мы сможем продолжить расследование.

...