Olá Alberto. O código é o mesmo que a Alura disponibiliza no fim do módulo. Baixei a versão que vocês disponibilizam para me certificar de que não estava cometendo erros, mas segue o código que faz a requisição:
public class WebClient {
public String post(String json) {
try {
URL url = new URL("https://www.caelum.com.br/mobile");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("Content-type", "application/json");
connection.setRequestProperty("Accept", "application/json");
connection.setDoOutput(true);
PrintStream output = new PrintStream(connection.getOutputStream());
output.println(json);
connection.connect();
Scanner scanner = new Scanner(connection.getInputStream());
String resposta = scanner.next();
return resposta;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
A execução pára na linha abaixo e fica aguardando resposta do web service:
PrintStream output = new PrintStream(connection.getOutputStream());