Bom dia! Gostaria de uma ajuda dos colegas para compreender um trecho de código da classe WebClient utilizada nessa aula para estabelecer conexão com servidores.
Vou fazer as observações por partes:
O URL permite instanciar a classe que proverá a url para a classe HttpURLConnection criar a conexão propriamente dita certo?
URL url = new URL("https://www.caelum.com.br/mobile");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
O setDoOutput(true) indica que queremos realizar uma requisição certo?
connection.setDoOutput(true);
Aqui começa minha dúvida. O que o trecho de código abaixo está fazendo exatamente?
PrintStream output = new PrintStream(connection.getOutputStream());
output.println(json);
A classe é a seguinte:
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);
Scanner scanner = new Scanner((Readable) connection.getOutputStream());
String resposta = scanner.next();
return resposta;
} catch (MalformedURLException e){
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
return null;
}
}