Я запускаю 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. Большое спасибо за помощь.