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

Acessar Xml Externa

public class ParseTorneios {

    private Context context;

    public ParseTorneios(Context context) {
        this.context = context;
    }

    public ArrayList<Torneios> getTorneios() throws XmlPullParserException, IOException {
        ArrayList<Torneios> torneios = null;
        Torneios usuario = null;
        XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
        factory.setNamespaceAware(true);
        XmlPullParser parser = factory.newPullParser();

        InputStream inputStream = context.getAssets().open("dados_torneios");
        //InputStream inputStream = context.getAssets().open("http://localhost:63760/api/Torneios");

       //URL url = new URL("http://localhost:63760/api/Torneios");
        //HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

        //InputStream in = new BufferedInputStream(urlConnection.getInputStream());


        parser.setInput(inputStream, null);
        int eventType = parser.getEventType();
        String tagName = null;
        String tagIncial = null;


        while (eventType != XmlPullParser.END_DOCUMENT) {
            eventType = parser.next();
            tagName = parser.getName();

            switch (eventType) {
                case XmlPullParser.START_TAG:
                    if (tagName.equals("ArrayOfTorneio")) {
                        torneios = new ArrayList<Torneios>();
                    } else if (tagName.equals("Torneio")) {
                        usuario = new Torneios();
                        //usuario.id = Integer.parseInt(parser.getAttributeValue(0));
                    }

                    tagIncial = tagName;
                    break;

                case XmlPullParser.TEXT:
                    if (usuario != null) {
                        if (tagIncial.equals("Nome_Torneio")) {
                            usuario.Nome_Torneio = parser.getText();
                        } else if (tagIncial.equals("Nome_Clube")) {
                            usuario.Nome_Clube = parser.getText();
                        }
                        else if (tagIncial.equals("id")) {
                            usuario.id = Integer.parseInt(parser.getText());
                        }
                        else if (tagIncial.equals("Inicio")) {
                            usuario.Inicio = parser.getText();
                        }
                        else if (tagIncial.equals("Fim")) {
                            usuario.Fin = parser.getText();
                        }
                    }
                    break;

                case XmlPullParser.END_TAG:
                    if (tagName.equals("ArrayOfTorneio")) {
                        return torneios;
                    } else if (tagName.equals("Torneio")) {
                        torneios.add(usuario);
                        usuario = null;
                    }

                    tagIncial = "";
                    break;
            }
        }

        return torneios;
    }
}

Tenho essa classe que faz a leitura de um documento xml

Preciso na verdade ler esse mesmo arquivo de uma url, exemplo :

http://localhost:63760/api/Torneios

Que é uma web service que criei para trazer dados dinâmicos de um banco sql

Alguma Ajuda?

5 respostas

Oi Gabriel, o google definiu que o acesso ao localhost é feito através do ip => 10.0.2.2 , poderia tentar? Ficaria http://10.2.2.2:63760/api/Torneios

InputStream inputStream = context.getAssets().open("dados_torneios");

OK

Mas essa sitaxe é que está me complicando Pois não sei o código que teria que escrever pra acessar esse documento

O que poderia usar para substituir o código acima por um outro que acessar a minha webservice?

Essa é a questão

       URL url = new URL("http://10.2.2.2:63760/api/Torneios");
        HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

        InputStream in = new BufferedInputStream(urlConnection.getInputStream());

Essa URL do pode ser acessada através de um ip

Porque contratei uma hospedagem e ao invés de acessar pelo IP iria acessar através de um domínio

Ex: http:www.domimio.com.br/API/jogador

Isso é correto?

Muito obrigado pelos esclarecimentos

solução!

Pode sim :). Aquele ip que coloquei é só para testes em localhost.