Array
(
)

Informações não são recebidas do webservice.

Cleyton Caetano
   - 23 jun 2016

Bom pessoal, estou trabalhando em um aplicativo e estou tentando recuperar algumas informações em json do meu servidor local ou de algum da internet, não ocorre nenhum erro mas os resultados não são exibidos também, segue meu código!
#Código

package com.marratecnologia.doctor;

import android.os.AsyncTask;
import android.util.Log;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.HttpURLConnection;
import java.net.URL;

/**
 * Created by Cleyton Caetano on 22/06/2016.
 */
public class Webservice extends AsyncTask<Void, Void, String> {

    private ConsultaListiner listiner;
    private static final String URL_STRING = "http://127.0.0.1/";

    public Webservice(ConsultaListiner listiner){
        this.listiner = listiner;
    }

    @Override
    protected String doInBackground(Void... voids) {

        try {
            String resultado = consultarServidor();

            return interpretaResultado(resultado);

        } catch (IOException e) {
            e.printStackTrace();
            return null;
        } catch (JSONException e) {
            e.printStackTrace();
            return null;
        }

    }

    private String interpretaResultado(String resultado) throws JSONException {

        JSONObject object = new JSONObject(resultado);

        JSONArray jsonArray = object.getJSONArray("primeiro");
        JSONObject jsonObjectResultado = jsonArray.getJSONObject(0);

        String nome = jsonObjectResultado.getString("nome");
        String sobrenome = jsonObjectResultado.getString("sobrenome");

        Log.d("Nome: ",""+nome);
        Log.d("Sobrenome: ",sobrenome);

        return nome+" "+sobrenome;
    }

    public String consultarServidor() throws IOException {

        InputStream is = null;

        try {

            URL url = new URL(URL_STRING);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setReadTimeout(10000);
            conn.setConnectTimeout(15000);
            conn.setRequestMethod("GET");
            conn.setDoInput(true);
            conn.connect();
            conn.getResponseCode();

            is = conn.getInputStream();

            Reader reader = null;
            reader = new InputStreamReader(is);
            char[] buffer = new char[2048];
            reader.read(buffer);
            return new String(buffer);
        }finally {
            if (is!=null){
                is.close();
            }
        }
    }

    @Override
    public void onPostExecute(String result){

        listiner.onConsultaConcluida(result);

    }

    public interface ConsultaListiner {
        void onConsultaConcluida(String resultado);
    }
}


Agora o MainActivity
#Código

    protected void onCreate(Bundle savedInstanceState) {
        new Webservice(this).execute();  
    }
   

    @Override
    public void onConsultaConcluida(String resultado) {
        TextView text = (TextView) findViewById(R.id.hello_world);
        text.setText(resultado);
    }


Meu json
#Código
{"primeiro":{"nome":"Cleyton","sobrenome":"Caetano","email":"meuemail@gmail.com","idade":"20","cidade":"Imperatriz"}}


Só pra constar meu app já está com permissão para internet no manifests!

Cleyton Caetano
   - 23 jun 2016

Alguém pro aê?

Weslei Patrick
|
MVP
    24 jun 2016

Boa noite,

Qual o erro que retorna ??

Cleyton Caetano
   - 24 jun 2016


Citação:
Boa noite,

Qual o erro que retorna ??


Boa noite Weslei Patrick, como já informei não retorna erro algum, quando a aplicação vai trocar o texto do TextView simplesmente fica vazio, como se não tivesse recebido nada do webservice.

Jothaz
   - 24 jun 2016

Com a informação que você postou fica praticamente impossível ajudá-lo, a não ser que a pessoa seja versada nas artes divinatórias.

O única caminho que vejo e debugar usando as Ferramentas do desenvolvedor, você consegue monitorar as transações e verificar o retorno no WebService ou erro que retornou e não foi capturado.