Como poderia adaptar o código de request do curso (no caso, foram enviados os alunos e retornou a média) para fazer um login através de um servidor na web?
Como poderia adaptar o código de request do curso (no caso, foram enviados os alunos e retornou a média) para fazer um login através de um servidor na web?
Olá Célio
Basicamente basta você mudar a URL para a que o form de login aponta e enviar login/senha como os parametros do POST. Isso deve ser o suficiente.
Olá Paulo,
A minha questão é exactamente essa... Como definiria os parametros para que a minha API no servidor pudesse pegar?
Abaixo o código (É o código do curso mas estou me baseando nele):
URL url = new URL("https://www.meuservidor.com/controller/controller");
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(connection.getInputStream());
String resposta = scanner.next();
return resposta;
A API recebe os dados em JSON e a ligação é https
Obrigado.
O Json precisa ser enviado em bytes para ser conteudo do post:
em vez de output.printlnjson
e a parte do PrintStream
, faça:
OutputStream os = connection.getOutputStream();
os.write(json.getBytes("UTF-8"));
InputStream in = new BufferedInputStream(connection.getInputStream());
String resultado = org.apache.commons.io.IOUtils.toString(in, "UTF-8");
// se precisar:
JSONObject jsonObject = new JSONObject(resultado);
Olá Paulo,
Mais uma coisinha...
No meu server side eu tenho algo do género:
<?php
$nome = filter_input(0, "nome");
echo "Olá {$nome}";
Como é que eu envio a variável nome para o servidor?
Olá Paulo,
Resolvido. Mas é normal demorar cerca de 30s para ter o retorno do echo acima descrito?
Estranho demorar tanto assim. Ainda mais se o servidor for o localhost. Descubra qual linha que está demorando tanto, e se é o servidor ou o cliente que está segurando. Pode debugar ou apenas colocar loggers em pontos estratégicos para isso