Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

O servidor caiu?

Ao tentar acessar a url: http://www.caelum.com.br/mobile recebo o erro 500 e ao acessar direto no browser percebo que a página tá fora ou com erro interno. Como vamos testar a conexão para obter a média ?

4 respostas

Olá Maison,

Essa página só aceita request do tipo POST.

Tente usar o método POST e compartilhe aqui se conseguiu.

Abraços

Olá Lucas, eu estou utilizando o post conforme orientado no curso, mas não tá indo o Toast exibe o erro 500.

public class WebClient {


    private String url;

    public WebClient(String url) {
        this.url = url;
    }

    public String post (String json) throws IOException {
        try {
            HttpPost post = new HttpPost(url);
            post.setEntity(new StringEntity(json));
            post.setHeader("Content-type", "application/json");
            post.setHeader("Accept", "application/json");

            DefaultHttpClient client = new DefaultHttpClient();
            HttpResponse resposta = client.execute(post);
            return EntityUtils.toString(resposta.getEntity());
        }catch (IOException e){
            e.printStackTrace();
        }

        return null;
    }
}

EnviaAlunosTask

public class EnviaContatosTask extends AsyncTask<Object,Object,String> {
    private Context context;
    private String media;
    private ProgressDialog progresso;

    public EnviaContatosTask(Context context) {

        this.context=context;
    }

    @Override
    protected void onPreExecute() {
        progresso = ProgressDialog.show(context,"Aguarde","Os Dados estão sendo enviados",true,true);
        progresso.show();
    }

    @Override
    protected String doInBackground(Object[] objects) {
        DBHelper helper = new DBHelper(context);
        AlunoDAO dao = new AlunoDAO(helper);
        List<Aluno> alunos = dao.getLista();
        helper.close();
        String json = new AlunoConverter().toJson(alunos);
        try {
             media = new WebClient("https://www.caelum.com.br/mobile").post(json);
            return media;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(String media) {
        progresso.dismiss();
        Toast.makeText(context,media,Toast.LENGTH_LONG).show();
        System.out.println(media);
    }


}

Caso possível alguém poderia testar se a página tá funcionando normalmente. Grato desde já.

solução!

Olá Maison,

Chequei aqui e o endpoint está ok. Suspeito que seja algo na hora de você converter para json nessa linha

String json = new AlunoConverter().toJson(alunos);

Você poderia mostrar a sua implementação desse método? Lembrando que você também pode imprimir num log o resultado do json para testar se está sendo criado de acordo.

Lucas eu encontrei um erro no AlunoConverter, desconfiava que era na página mesmo, mas era nessa classe tinha um js.object a mais, agora calculou normalmente, valeu pela ajuda.