Просто начать работу с сервисами RESTful и получить простой пример Hello World.
Следующим шагом является отправка объекта Java на сервер, но сбой вызова клиента с ошибкой Failed : HTTP error code : 400
. Я подозреваю, что это связано с тем, как служба определена / настроена.
Следующее является частью службы RESTful
@RestController
public class WelcomeController
{
@RequestMapping("/welcome") //<-----------Works fine
public String welcome() {
return new String("Hello World") ;
}
@PostMapping("/postExample") //<-----------Failing
public String postExample(@RequestBody MyObject object1)
{
return new String("Info received " ) ;
}
}
Следующее является частью клиента, выполняющего вызов ...
public class RestfulClientTest {
public static void main(String[] args)
{
initialTest();
postObject();
}
private static void initialTest()
{
////This works and returns Hello World
}
private static void postObject()
{
try {
URL url = new URL("http://localhost:8083/postExample");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setDoInput(true);
if (conn.getResponseCode() != 200) { **//<------Code enters here**
throw new RuntimeException("Failed : HTTP error code : "
+ conn.getResponseCode());
}
MyObject obj1 = new MyObject("AAA", "BBB");
ObjectOutputStream out = new ObjectOutputStream(conn.getOutputStream());
out.writeObject(uLoginInfo);
out.close();
BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null) {
System.out.println(output);
}
conn.disconnect();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Я уверен, что что-то было пропустил ли это дополнительную аннотацию или формат Сервиса. Любая идея, что первоначальный вызов для открытия соединения не удается?