Я пытаюсь выполнить put-request против написанного мной rest-api, но он всегда возвращает 400-Bad Request.Java Put-Request возвращает 400 Bad Request
java.io.IOException: Сервер вернул код ответа HTTP: 400 для URL: http://localhost:8000/api/v0/contacts/2 в sun.net.www.protocol.http.HttpURLConnection.getInputStream (Unknown Source)
я могу вызовите URL-адрес с плагином-клиентом firefox-rest, а также другим угловым клиентом, поэтому, я думаю, я настроил что-то не так в своем java-коде.
Сервер всегда возвращает что-то, поэтому я не знаю, почему он сбой, когда я пытаюсь получить входной поток.
protected String put(String path, String parameters)
throws IOException {
HttpURLConnection connection = getConnection(path, "PUT", parameters);
OutputStreamWriter outputWriter = new OutputStreamWriter(
connection.getOutputStream());
outputWriter.write(parameters);
outputWriter.flush();
outputWriter.close();
InputStream is = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String response = reader.readLine();
while(response != null){
response += reader.readLine();
}
reader.close();
return response;
}
private HttpURLConnection getConnection(String path, String method,String params) throws MalformedURLException, IOException,
ProtocolException {
URL url = new URL(this.api + path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setUseCaches(false);
connection.setRequestMethod(method);
connection.setRequestProperty("Content-Length",
String.valueOf(params.length()));
return connection;
}
Извините за плохой английский, это не мой родной язык.
Мы не можем помочь, если мы не знаем, какое приложение запускает сервер (Tomcat, Spring Boot, Dropwizard) и видя ваш внутренний код. Возможно, 400 из-за того, что ваш клиент не имеет Content-Type, но это просто предположение. – wonderb0lt