Неправильный запрос при обработке остальных POST-запросов? - PullRequest
0 голосов
/ 11 мая 2019

Я запускаю rocketchat на моей локальной машине / localhost. Я хотел бы создать пользователя, используя остальные API. Я проверил это бессонницей - инструментом для запроса на отдых, и все работает правильно. Теперь я хотел бы использовать java, чтобы сделать это в java - сделать POST-запрос rest с заголовком и параметрами. Ниже приведен код:

//helper method:
 String getResponseAsString(HttpResponse response) throws IOException {
        BufferedReader r = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
        StringBuilder total = new StringBuilder();
        String line = null;
        while ((line = r.readLine()) != null) {
            total.append(line);
        }
        r.close();
        return total.toString();
    }

//main method:
    @RequestMapping("/rocketchatrequestapiv1userscreate")
    public String rocketchatrequestapiv1userscreate() {
        String url = "http://rocketchat:3000/api/v1/users.create";
        CloseableHttpClient httpclient = HttpClients.createDefault();
        HttpPost httppost = new HttpPost(url);
// Request parameters and other properties.
        List<NameValuePair> params = new ArrayList<>(4);
        params.add(new BasicNameValuePair("name", "a5name"));
        params.add(new BasicNameValuePair("email", "a5@wp.pl"));
        params.add(new BasicNameValuePair("password", "a5password"));
        params.add(new BasicNameValuePair("username", "a5username"));
        try {
            httppost.setHeader(HttpHeaders.CONTENT_TYPE, "application/json; charset=UTF-8");
            httppost.setHeader("X-Auth-Token","cUfc_gXrJdSM5bQBBwWmgxm9fCR6OG6ki1norPAnM9E");
            httppost.setHeader("X-User-Id","aDwBoPAzbpm6pTYku");
            httppost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
        } catch (UnsupportedEncodingException e) {
            return "";
        }
//Execute and get the response.
        try {
            return getResponseAsString(httpclient.execute(httppost));
        } catch (IOException e) {
            return "";
        }
    }

Я использую весеннюю загрузку. Я запускаю этот контроллер в веб-браузере по телефону:

http://localhost:8081/rocketchatrequestapiv1userscreate

Когда я пытаюсь выполнить этот запрос, я получаю информацию: «Плохой запрос» Я думаю, что я сделал ошибку в заголовке - добавив заголовок в httppost. В моем другом методе я использую также запрос POST без заголовка, и все работает правильно. Здесь мне нужно добавить заголовок в httppost и что-то не так. Я думаю, что параметры правильные, потому что, когда я использую бессонницу (инструмент для создания запроса отдыха), все работает правильно, только не работает в коде Java. Я думал о настройке charset = UTF-8, потому что, возможно, форматирование не работает или что-то с разрешения администратора. Подводя итог, когда я запускаю этот код получил "Плохой запрос", и я думаю, что он связан с заголовком httppost. Большое спасибо за помощь.

...