Ver mensagens sem resposta | Ver tópicos ativos Hoje é 21 Set 2019, 14:42



Responder Tópico  [ 154 Mensagens ]  Ir para a página Anterior  1, 2, 3, 4  Próximo
 [ARTIGO] Webservice com jSON completo. 
Autor Mensagem
Android Guru
Android Guru
Avatar de usuário

Data de registro: 29 Ago 2011, 16:18
Mensagens: 789
Localização: Blumenau - SC
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Agora que troquei o "String" pelo "Contato", obtive o Insert no banco de dados...
Realmente ele me devolveu um Contato e não um JSonArray,
o void e o @Produces(MediaType.APPLICATION_JSON) foi testes pois não estava obtendo sucesso...

Funcionou perfeitamente desta maneira:
@POST
    @Consumes(MediaType.APPLICATION_JSON)
    @Path("/insert")
    public void insert(Contato contato){
        ContatoDAO dao = new ContatoDAO();
       
        dao.insertContato(contato.getNome(), contato.getEndereco(), contato.getEmail());
    }


mandando desta forma pelo android:
String _nome, _endereco, _email;
                _nome = nome.getText().toString();
                _endereco = endereco.getText().toString();
                _email = email.getText().toString();
               
                Contato contato = new Contato();
                contato.setNome(_nome);
                contato.setEndereco(_endereco);
                contato.setEmail(_email);
               
                Gson gson = new Gson();
                String jsonContato = gson.toJson(contato, Contato.class);
               
                try {
                    StringEntity sEntity = new StringEntity(jsonContato, "UTF-8");
                    sEntity.setContentType("application/json");
                    DefaultHttpClient httpClient = new DefaultHttpClient();
                    HttpPost post = new HttpPost(URLINSERT);
                   
                    post.setEntity(sEntity);
                   
                    HttpResponse httpResponse = httpClient.execute(post);   
                   
                   
                   
                } catch (UnsupportedEncodingException e) {
                    Log.e("ENTITY", e.toString());
                    e.printStackTrace();
                } catch (ClientProtocolException e) {
                    Log.e("ClientProtocolException", e.toString());
                    e.printStackTrace();
                } catch (IOException e) {
                    Log.e("IOException", e.toString());
                    e.printStackTrace();
                }



Obrigado pela atenção!

_________________
Sanou a sua dúvida ou resolveu o seu problema?
1º -> Compartilhe a solução postando-a, as pessoas com a mesma dúvida ou problema agradecem.
2º -> Adicione ao título do tópico "[RESOLVIDO]" para que os moderadores identifiquem que o seu tópico foi realmente resolvido.


_____
WordPress: http://tecmaicon.wordpress.com/
github: https://github.com/maiconn
LinkedIn: http://www.linkedin.com/pub/maicon-mach ... /64/a07/20


10 Out 2011, 16:52
Perfil WWW
What is Android?
What is Android?

Data de registro: 13 Out 2011, 18:59
Mensagens: 4
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Bom Dia amigos,

Estou iniciando, então... vão precisar de paciência, rsrs

Usando o primeiro Exemplo do Gerson, não consegui realizar todo o processo.
O sistema "pára" em "Sincronizando com o WebService"
e no LogCat a aparece a seguinte nota:

10-14 12:05:05.061: INFO/AndroidRuntime(332): NOTE: attach of thread 'Binder Thread #3' failed

O exemplo está idêntico, alterando apenas a url para retornar o Json correto.

Estou usando o emulador com Android 2.2 e está com o acesso a internet normalmente.

Muito Obrigado Pessoal.


14 Out 2011, 11:09
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Só com essa linha não dá pra saber o erro exato.

Acredito que seja a conexão com o seu WS, mas posta o erro completo.

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


14 Out 2011, 13:44
Perfil WWW
What is Android?
What is Android?

Data de registro: 13 Out 2011, 18:59
Mensagens: 4
Mensagem Re: [ARTIGO] Webservice com jSON completo.
antunes,

o LogCat mostra isso.


10-16 15:56:50.981: DEBUG/AndroidRuntime(371): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
10-16 15:56:50.981: DEBUG/AndroidRuntime(371): CheckJNI is ON
10-16 15:56:51.172: DEBUG/AndroidRuntime(371): --- registering native functions ---
10-16 15:56:52.342: DEBUG/dalvikvm(184): GC_EXPLICIT freed 130 objects / 6936 bytes in 289ms
10-16 15:56:52.402: DEBUG/PackageParser(59): Scanning package: /data/app/vmdl57954.tmp
10-16 15:56:52.561: INFO/PackageManager(59): Removing non-system package:renan.siqueira
10-16 15:56:52.561: INFO/ActivityManager(59): Force stopping package renan.siqueira uid=10036
10-16 15:56:52.561: INFO/Process(59): Sending signal. PID: 330 SIG: 9
10-16 15:56:52.571: INFO/ActivityManager(59):   Force finishing activity HistoryRecord{43f70e98 renan.siqueira/.ExemolowsActivity}
10-16 15:56:52.592: INFO/WindowManager(59): WIN DEATH: Window{44008850 Aguarde paused=true}
10-16 15:56:52.662: INFO/WindowManager(59): WIN DEATH: Window{44034f70 renan.siqueira/renan.siqueira.ExemolowsActivity paused=true}
10-16 15:56:53.023: DEBUG/PackageManager(59): Scanning package renan.siqueira
10-16 15:56:53.031: INFO/PackageManager(59): Package renan.siqueira codePath changed from /data/app/renan.siqueira-1.apk to /data/app/renan.siqueira-2.apk; Retaining data and using new
10-16 15:56:53.031: INFO/PackageManager(59): /data/app/renan.siqueira-2.apk changed; unpacking
10-16 15:56:53.052: DEBUG/installd(35): DexInv: --- BEGIN '/data/app/renan.siqueira-2.apk' ---
10-16 15:56:53.262: DEBUG/dalvikvm(378): DexOpt: load 35ms, verify 54ms, opt 2ms
10-16 15:56:53.271: DEBUG/installd(35): DexInv: --- END '/data/app/renan.siqueira-2.apk' (success) ---
10-16 15:56:53.271: WARN/PackageManager(59): Code path for pkg : renan.siqueira changing from /data/app/renan.siqueira-1.apk to /data/app/renan.siqueira-2.apk
10-16 15:56:53.271: WARN/PackageManager(59): Resource path for pkg : renan.siqueira changing from /data/app/renan.siqueira-1.apk to /data/app/renan.siqueira-2.apk
10-16 15:56:53.281: DEBUG/PackageManager(59):   Activities: renan.siqueira.ExemolowsActivity
10-16 15:56:53.292: INFO/ActivityManager(59): Force stopping package renan.siqueira uid=10036
10-16 15:56:53.422: INFO/installd(35): move /data/dalvik-cache/data@app@renan.siqueira-2.apk@classes.dex -> /data/dalvik-cache/data@app@renan.siqueira-2.apk@classes.dex
10-16 15:56:53.422: DEBUG/PackageManager(59): New package installed in /data/app/renan.siqueira-2.apk
10-16 15:56:53.611: INFO/ActivityManager(59): Force stopping package renan.siqueira uid=10036
10-16 15:56:53.691: DEBUG/dalvikvm(132): GC_EXPLICIT freed 215 objects / 9584 bytes in 77ms
10-16 15:56:53.922: DEBUG/dalvikvm(59): GC_EXPLICIT freed 8313 objects / 513664 bytes in 228ms
10-16 15:56:54.252: WARN/RecognitionManagerService(59): no available voice recognition services found
10-16 15:56:54.491: DEBUG/dalvikvm(59): GC_EXPLICIT freed 4078 objects / 225496 bytes in 126ms
10-16 15:56:54.512: DEBUG/dalvikvm(165): GC_EXPLICIT freed 1573 objects / 79656 bytes in 540ms
10-16 15:56:54.531: INFO/installd(35): unlink /data/dalvik-cache/data@app@renan.siqueira-1.apk@classes.dex
10-16 15:56:54.542: DEBUG/AndroidRuntime(371): Shutting down VM
10-16 15:56:54.552: DEBUG/dalvikvm(371): Debugger has detached; object registry had 1 entries
10-16 15:56:54.582: INFO/AndroidRuntime(371): NOTE: attach of thread 'Binder Thread #3' failed
10-16 15:56:55.191: DEBUG/AndroidRuntime(384): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
10-16 15:56:55.191: DEBUG/AndroidRuntime(384): CheckJNI is ON
10-16 15:56:55.382: DEBUG/AndroidRuntime(384): --- registering native functions ---
10-16 15:56:56.221: INFO/ActivityManager(59): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=renan.siqueira/.ExemolowsActivity }
10-16 15:56:56.332: DEBUG/AndroidRuntime(384): Shutting down VM
10-16 15:56:56.361: DEBUG/dalvikvm(384): Debugger has detached; object registry had 1 entries
10-16 15:56:56.382: INFO/ActivityManager(59): Start proc renan.siqueira for activity renan.siqueira/.ExemolowsActivity: pid=391 uid=10036 gids={}
10-16 15:56:56.401: INFO/AndroidRuntime(384): NOTE: attach of thread 'Binder Thread #3' failed
10-16 15:56:57.422: INFO/ActivityManager(59): Displayed activity renan.siqueira/.ExemolowsActivity: 1093 ms (total 1093 ms)
10-16 15:57:05.261: DEBUG/dalvikvm(184): GC_EXPLICIT freed 152 objects / 10872 bytes in 138ms
10-16 15:57:10.331: DEBUG/dalvikvm(265): GC_EXPLICIT freed 249 objects / 11832 bytes in 144ms
10-16 15:57:15.361: DEBUG/dalvikvm(132): GC_EXPLICIT freed 612 objects / 35016 bytes in 161ms
10-16 15:58:44.947: DEBUG/SntpClient(59): request time failed: java.net.SocketException: Address family not supported by protocol
10-16 16:03:44.962: DEBUG/SntpClient(59): request time failed: java.net.SocketException: Address family not supported by protocol
 




Quanto ao WS, ele está retornando isso no navegador:

{"retorno":{"campor1":"valor1","campor2":"valor2","campor3":"valor3"}}


16 Out 2011, 15:06
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Mas ele chega a iniciar a app??

Dá uma conferida no seu manifest, layout e activity. Se puder posta o código.

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


16 Out 2011, 16:41
Perfil WWW
What is Android?
What is Android?

Data de registro: 13 Out 2011, 18:59
Mensagens: 4
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Inicia sim, ele entra, aparece a mensagem: "Sincronizando com o WebService" e não avança mais.

Vou postar o código.

Classe WebServiceActivity:

package br.com.WS;

import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONTokener;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.util.Log;

public class WebServiceActivity extends Activity implements Runnable {
   
    private String page;
    private ProgressDialog pd;
    private String URL_WS = "http://www.meusite.com.br/Android/webservice.php";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        //Progresso por tempo indeterminado.
        pd = null;
        pd = ProgressDialog.show(this,"Aguarde", "Sincronizando com WebService", true, false);
       
        //Inicia-se uma Thread para processar o webservice
        try{
            Thread thread = new Thread();
            thread.start();
        }catch (Exception e) {
            pd.dismiss();
            Log.e("WS", e.toString());
        }
    }

    public void run() {
        try {
            //Chama o método que fará o trabalho com o Json passando o endereço do webservice.
            this.JSONFile(URL_WS);
        } catch (Exception e) {
            Log.e("WS", e.toString());
        }      
    }
   
    private void JSONFile(String url){
        try{
           
            //Le a pagina
            GetHttp http = new GetHttp(url);
            // page contem a string json
            page = http.page;
           
            //nativo do SDK  da o parse da string json
            JSONObject object = (JSONObject) new JSONTokener(page).nextValue();
           
            // monta o array do retorno do json, lembrando que retorno é o PAI do json impresso em page.
            //{"retorno":[ {"campo1":"valor1"},{"campo2":"valor2"},{"campo3":"valor3"} ]}
            JSONArray message = object.getJSONArray("retorno");
           
            //Percorre o array retornado
            //campo1, 2 e 3 são os nós da string json {"campo1":"valor1"},{"campo2":"valor2"},{"campo3":"valor3"}
            for(int i=0;i<message.length();i++){
                JSONObject lines = (JSONObject) new JSONTokener(message.getString(i)).nextValue();
                Log.d("WS", "[Retorno do WS]");
                Log.d("WS", "Retorno: "+ lines.getString("campo1") );
                Log.d("WS", "Retorno: "+ lines.getString("campo2") );
                Log.d("WS", "Retorno: "+ lines.getString("campo3") );
                Log.d("WS", "[/Retorno do WS]");
            }
           
            Log.d("WS", "Sincronizado com sucesso");
            pd.dismiss();
        }catch (Exception e) {
            Log.e("WS",e.toString());
        }
    }
   
}
 


Classe GetHttp:


package br.com.WS;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URI;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.CoreProtocolPNames;

import android.util.Log;

class GetHttp {
   
    public String page = "";
   
    public GetHttp(String URL) throws Exception{
        BufferedReader bufferedReader = null;
        try{
            HttpClient client = new DefaultHttpClient();
            client.getParams().setParameter(CoreProtocolPNames.USER_AGENT, "android");
            HttpGet request = new HttpGet();
            request.setHeader("Content-Type", "text/plain; charset=utf-8");
            request.setURI(new URI(URL));
            HttpResponse response = client.execute(request);
            bufferedReader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
            StringBuffer stringBuffer = new StringBuffer("");
            String line = "";
            String NL = System.getProperty("line.separator");
           
            Log.d("GetHttp","Iniciando leitura de buffer.");
            while ((line = bufferedReader.readLine()) != null){
                stringBuffer.append(line + NL);
                Log.d("GetHttp", stringBuffer.toString());
            }
            bufferedReader.close();
            Log.d("GetHttp", "Leitura de buffer finalizada");
           
            page = stringBuffer.toString();
        }catch (Exception e) {
            Log.e("GetHttp", e.toString());
        }finally{
            if (bufferedReader != null){
                try{
                    bufferedReader.close();
                }catch (IOException e){
                    Log.e("GetHttp", e.toString());
                }
            }
        }
    }
}

 


Layout Main:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

<TextView  
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />

</LinearLayout>

 


Manifest:


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="br.com.WS"
      android:versionCode="1"
      android:versionName="1.0">

    <uses-sdk android:minSdkVersion="8" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".WebServiceActivity"
                  android:label="@string/app_name">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".GetHttp">
        </activity>

    </application>
</manifest>
 


Editado pela última vez por Renan Fernando em 09 Nov 2011, 17:31, num total de 1 vezes



17 Out 2011, 10:19
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Tira isso do seu manifest:

<activity android:name=".GetHttp">
        </activity>


Essa classe não é activity!!

Não vi outra possibilidade de erro. Testa aí!!

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


17 Out 2011, 13:53
Perfil WWW
What is Android?
What is Android?

Data de registro: 13 Out 2011, 18:59
Mensagens: 4
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Pois é antunes, eu coloquei a classe ali por teste, infelizmente mesmo sem este bloco não funcionou.

Até passei direto para o celular pra testar lá, e mesmo assim não funcionou. :/


17 Out 2011, 15:45
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Ahh.. faltou a permissão para INTERNET no seu manifest!

<uses-permission android:name="android.permission.INTERNET" />


Coloque ela fora da tag "application".

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


17 Out 2011, 16:58
Perfil WWW
What is Android?
What is Android?

Data de registro: 16 Out 2011, 01:21
Mensagens: 7
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Eu criei a minha class WebService baseada neste artigo, mas o retorno do php como exemplo:

{"retorno":[{"campo1":"valor1",{"campo2":"valor2"},{"campo3":"valor3"}}]}

Não está formatado da forma que realmente ele retorna.
O Correto é:
{"retorno":[{"campo1":"valor1"},{"campo2":"valor2"},{"campo3":"valor3"}]}


Minha classe ficou assim:


import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONTokener;

public class WebService {
    String urlS = "http://www.google.com";
    static String CRLF = "\r\n";
    static String twoHyphens = "--";
    static String boundary = "*****mgd*****";
    StringBuffer postS = new StringBuffer();
    public JSONArray getHTTPPost() {
        return getHTTPPost(getPost(), urlS);
    }

    public JSONArray getHTTPPost(String postString) {
        return getHTTPPost(postString, urlS);
    }

    public JSONArray getHTTPPost(String postString, String urlString) {
        JSONArray mensagem = null;
       
        try {       
           
            URL url = new URL(urlString);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
           
             
            connection.setDoInput(true);
            connection.setDoOutput(true);      
            connection.setRequestMethod("POST");
            connection.setUseCaches(false);
            //connection.setRequestProperty ("Authorization", "Basic senha em base64"); //Caso o servidor peça senha de autenticação
   
           
            //connection.setRequestProperty("User-Agent", "Meu sistema"); //Para alterar o User-Agent
            connection.setRequestProperty("Connection","Keep-Alive");
            connection.connect();
   
   
           
           
            OutputStream out1 = connection.getOutputStream();  
            DataOutputStream data1 = new DataOutputStream(out1);  
            data1.writeBytes(postString);
            data1.flush();  
            data1.close();  
            out1.close();  
           
            StringBuffer newData = new StringBuffer();
            BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
   
            String s = "";
            while (null != ((s = br.readLine()))) {
                newData.append(s);
            }
            br.close();
            String result = newData.toString();
           

            JSONObject json = (JSONObject) new JSONTokener(result).nextValue();
       
            mensagem = json.getJSONArray("retorno");
        } catch (Exception e) {
            // TODO: handle exception
        }
        return mensagem;
    }
    public void prepararPost(String campo, String valor) {
        postS.append(campo+"="+URLEncoder.encode(valor)+"&");
    }
    public String prepararPost2(String campo, String valor) {
        return campo+"="+URLEncoder.encode(valor)+"&";     
    }
    public String getPost() {
        return postS.toString();
    }
    public JSONArray getHTTPsPost(String urlString, String postString) { //Um dia fica pronto este método
        JSONArray mensagem = null;
        return mensagem;
    }
}
 


e uso assim:
WebService web = new WebService();
web.prepararPost("usuario", "nome do usário");
web.prepararPost("senha", "senha");
web.prepararPost("outro", "outro campo");
String postString=web.getPost();

JSONArray msn=web.getHTTPPost(postString);
//Percorre o array retornado
//campo1, 2 e 3 são os nós da string json {"campo1":"valor1"},{"campo2":"valor2"},{"campo3":"valor3"}
JSONObject lines=null;
String campo1;
String campo2;
String campo3;
for(int i=0;i<msn.length();i++){
    try {
        lines = (JSONObject) new JSONTokener(msn.getString(i)).nextValue();
        campo1=lines.getString("campo1");
        campo2=lines.getString("campo2");
        campo3=lines.getString("campo3");
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
// ai depois de pegar os campos, só fazer o que vc precisa com eles    
 


Adoraria ver um artigo em português, para https, só acho artigo em inglês e nunca funciona.
Dependendo o valor eu pagaria por uma classe que enviasse dados em POST para um https e retornasse o valor que recebeu do site.
P.S.: A classe precisaria aceitar qualquer certificado.


27 Out 2011, 12:00
Perfil
Android Guru
Android Guru
Avatar de usuário

Data de registro: 29 Ago 2011, 16:18
Mensagens: 789
Localização: Blumenau - SC
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Bom dia, gostaria de saber se tem algum método para quando se trabalha com o banco de dados com muitos registros e o android precisa pegar todos... muito eu digo uns 20mil ou mais...
fiz exatamente os métodos que estão postados neste tópico só que não sei o que fazer...

o android me retorna este erro...

10-31 11:04:20.829: E/dalvikvm-heap(442): Out of memory on a 176-byte allocation.
10-31 11:04:20.829: I/dalvikvm(442): "AsyncTask #1" prio=5 tid=7 RUNNABLE
10-31 11:04:20.829: I/dalvikvm(442):   | group="main" sCount=0 dsCount=0 s=N obj=0x44f76810 self=0x2587f0
10-31 11:04:20.829: I/dalvikvm(442):   | sysTid=449 nice=10 sched=0/0 cgrp=bg_non_interactive handle=2462064
10-31 11:04:20.829: I/dalvikvm(442):   | schedstat=( 45765811357 4883174003 851 )
10-31 11:04:20.829: I/dalvikvm(442):   at java.lang.Throwable.nativeFillInStackTrace(Native Method)
10-31 11:04:20.829: I/dalvikvm(442):   at java.lang.Throwable.fillInStackTrace(Throwable.java:138)
10-31 11:04:20.829: I/dalvikvm(442):   at java.lang.Throwable.<init>(Throwable.java:80)
10-31 11:04:20.829: I/dalvikvm(442):   at java.lang.Error.<init>(Error.java:38)
10-31 11:04:20.829: I/dalvikvm(442):   at java.lang.VirtualMachineError.<init>(VirtualMachineError.java:36)
10-31 11:04:20.829: I/dalvikvm(442):   at java.lang.OutOfMemoryError.<init>(OutOfMemoryError.java:34)
10-31 11:04:20.829: I/dalvikvm(442):   at java.util.HashMap.makeTable(HashMap.java:-1)
10-31 11:04:20.829: I/dalvikvm(442):   at java.util.HashMap.doubleCapacity(HashMap.java:578)
10-31 11:04:20.829: I/dalvikvm(442):   at java.util.HashMap.put(HashMap.java:408)
10-31 11:04:20.829: I/dalvikvm(442):   at com.google.myjson.JsonObject.add(JsonObject.java:60)
10-31 11:04:20.829: I/dalvikvm(442):   at com.google.myjson.Streams.parseRecursive(Streams.java:83)
10-31 11:04:20.829: I/dalvikvm(442):   at com.google.myjson.Streams.parseRecursive(Streams.java:75)
10-31 11:04:20.829: I/dalvikvm(442):   at com.google.myjson.Streams.parse(Streams.java:40)
10-31 11:04:20.829: I/dalvikvm(442):   at com.google.myjson.JsonParser.parse(JsonParser.java:83)
10-31 11:04:20.829: I/dalvikvm(442):   at com.google.myjson.JsonParser.parse(JsonParser.java:58)
10-31 11:04:20.829: I/dalvikvm(442):   at com.google.myjson.JsonParser.parse(JsonParser.java:44)
10-31 11:04:20.829: I/dalvikvm(442):   at com.android.hbprever.webAcess.Selects.getUsuarios(Selects.java:31)
10-31 11:04:20.829: I/dalvikvm(442):   at com.android.hbprever.view.usuarios.Usuarios.CarregaListaComLoad(Usuarios.java:80)
10-31 11:04:20.829: I/dalvikvm(442):   at com.android.hbprever.view.usuarios.Usuarios$progressDialog.doInBackground(Usuarios.java:227)
10-31 11:04:20.829: I/dalvikvm(442):   at com.android.hbprever.view.usuarios.Usuarios$progressDialog.doInBackground(Usuarios.java:1)
10-31 11:04:20.829: I/dalvikvm(442):   at android.os.AsyncTask$2.call(AsyncTask.java:185)
10-31 11:04:20.829: I/dalvikvm(442):   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
10-31 11:04:20.829: I/dalvikvm(442):   at java.util.concurrent.FutureTask.run(FutureTask.java:137)
10-31 11:04:20.829: I/dalvikvm(442):   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
10-31 11:04:20.829: I/dalvikvm(442):   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
10-31 11:04:20.829: I/dalvikvm(442):   at java.lang.Thread.run(Thread.java:1096)
 


obrigado

_________________
Sanou a sua dúvida ou resolveu o seu problema?
1º -> Compartilhe a solução postando-a, as pessoas com a mesma dúvida ou problema agradecem.
2º -> Adicione ao título do tópico "[RESOLVIDO]" para que os moderadores identifiquem que o seu tópico foi realmente resolvido.


_____
WordPress: http://tecmaicon.wordpress.com/
github: https://github.com/maiconn
LinkedIn: http://www.linkedin.com/pub/maicon-mach ... /64/a07/20


31 Out 2011, 10:10
Perfil WWW
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Maicon,

Esquece!!!! Dessa forma que vc está fazendo não rola!!

10-31 11:04:20.829: E/dalvikvm-heap(442): Out of memory on a 176-byte allocation.


Tenta fazer consulta de 15 em 15 ou 20 em 20 e vai paginando, assim como é feito em desktop!!

Vc está querendo matar o pequeno droid???

Lembre-se que isso é um celular!!!!!

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


31 Out 2011, 19:09
Perfil WWW
Android Guru
Android Guru
Avatar de usuário

Data de registro: 29 Ago 2011, 16:18
Mensagens: 789
Localização: Blumenau - SC
Mensagem Re: [ARTIGO] Webservice com jSON completo.
é verdade, andei analisando e não é bom fazer consultas tão grandes... o android vai mesmo arregar se fazer desta forma...

_________________
Sanou a sua dúvida ou resolveu o seu problema?
1º -> Compartilhe a solução postando-a, as pessoas com a mesma dúvida ou problema agradecem.
2º -> Adicione ao título do tópico "[RESOLVIDO]" para que os moderadores identifiquem que o seu tópico foi realmente resolvido.


_____
WordPress: http://tecmaicon.wordpress.com/
github: https://github.com/maiconn
LinkedIn: http://www.linkedin.com/pub/maicon-mach ... /64/a07/20


03 Nov 2011, 09:09
Perfil WWW
Anatomy of an App
Anatomy of an App

Data de registro: 12 Mar 2011, 13:32
Mensagens: 109
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Boa tarde.
Alguém poderia me ajudar..

Tenho um método que retorna um Array List, de Clientes, por exemplo. Só que dentro desse Array, há - como atributo - um objeto de uma classe..
Tipo, a classe que "tipa" esse Array seria:

private int codigo;
private String nome;
private Endereco endereco;

//setts e getts omitidos\\
 

onde
Endereco.java
, contém:

private int codigo;
private String rua;
private String numero;
private String telefone;

//setts e getts omitidos\\
 



Pra montar o método do WS nesse caso, queria retornar uma lista com todos os clientes...
Normalmente dá algum erro com essa abordagem? (Abaixo o método do WS)
Outro detalhe, estou usando JPA pra persistência..



@GET
    @Path("/listaCliente")
    @Produces(MediaType.APPLICATION_JSON)
    public String getListaClientes(@Context HttpHeaders headers) {

        Gson gson = new Gson();
        String listaCliente = gson.toJson(new ClienteSimplesBusiness().buscarLista()); //esse método devolve um arraylist do tipo cliente simples
        return listaCliente;
    }


Muito obrigado.

_________________
Marcos Roberto da Fonseca
Desenvolvimento de software

Maiores informações:
http://zipersoft.com.br e tem também nosso blog: http://zipersoft.com.br/blog


08 Nov 2011, 15:23
Perfil
Android application
Android application

Data de registro: 04 Mai 2010, 13:28
Mensagens: 55
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Galera seguinte tenho um método no android no qual pego no servidor uma array de objetos json o método é o seguinte

try {
            JSONObject json = new JSONObject(result);
            Log.e("login", "valor do Json"+json);
           
            JSONArray usuariosArray = json.getJSONArray("usuario");

            JSONObject usuarioJson;
           
           
            for (int i = 0; i < usuariosArray.length(); i++) {
                usuarioJson = new JSONObject(usuariosArray.getString(i));
               
                Usuario usuarioProximo = new Usuario();
               
                usuarioProximo.setNome(usuarioJson.getString("nome"));
                usuarioProximo.setIdade(usuarioJson.getInt("idade"));
                usuarioProximo.setSexo(usuarioJson.getString("sexo"));
                usuarioProximo.setLatitude(usuarioJson.getDouble("latitude"));
                usuarioProximo.setLongitude(usuarioJson.getDouble("longitude"));
                usuarioProximo.setSobre(usuarioJson.getString("sobre"));
                usuarioProximo.setLogin(usuarioJson.getString("login"));
                usuarioProximo.setEmail(usuarioJson.getString("email"));
                usuarioProximo.setFotoPerfil(usuarioJson.getString("fotoPerfil"));
                usuarioProximo.setDataCadastro(usuarioJson.getString("dataCadastro"));             
               
                addUsuario(usuarioProximo);            
               
   
            }
           

           
        } catch (JSONException e) {
            Log.e("NGVL", "Erro no parsing do JSON", e);
        }


O método funciona bem se vier mais de 2 objetos do webservice, mas se vem só um objeto ele simplesmente cai no catch, alguém sabe como solucionar esse problema?

_________________
http://n3t0l0b0.blogspot.com/
http://twitter.com/netolobo


09 Nov 2011, 11:50
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 12 Mar 2011, 13:32
Mensagens: 109
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Bom dia amigo netolobo.
Como vai?

Muito provavelmente deve estar acontecendo o mesmo que aconteceu comigo.
Faz assim, posta aqui como aparece pra você no navegador, quando você aciona seu webservice.
Pode ser?

_________________
Marcos Roberto da Fonseca
Desenvolvimento de software

Maiores informações:
http://zipersoft.com.br e tem também nosso blog: http://zipersoft.com.br/blog


10 Nov 2011, 09:01
Perfil
Android application
Android application

Data de registro: 04 Mai 2010, 13:28
Mensagens: 55
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Ok Marquinho essa aqui é a saida quando eu pego somente um objeto

{"usuario":{"dataCadastro":"2011-11-07","email":"usuario@gmail.com","fotoPerfil":"foto","id":"1","idade":"26","latitude":"-11.7256442","login":"loginx","longitude":"-49.0658328","nome":"nomex ","senha":"senhax","sexo":"sexoX","sobre":"sobre"}}

_________________
http://n3t0l0b0.blogspot.com/
http://twitter.com/netolobo


10 Nov 2011, 12:20
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Está acontecendo exatamente o que o marquinho está pensando, o que vc recebe não é um array!!

Já falei isso pra alguém aqui nesse tópico!!

antunes escreveu:
Se ele retorna isso ({"email":"teste","endereco":"teste","nome":"teste"}) no "System.out.println(jsonNewContato);", então realmente não é um array, esse JSON é um contato apenas.

Um array seria assim:
[{"email":"teste","endereco":"teste","nome":"teste"},{"email":"teste1","endereco":"teste1","nome":"teste1"},{"email":"teste2","endereco":"teste2","nome":"teste2"}]


Vc está recebendo uma Lista de contatos??

Outra coisa é que seu método é "void", logo, não precisa do "@Produces("text/plain")", mas isso não impede de funcionar.

Abraços!


Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


10 Nov 2011, 13:15
Perfil WWW
Android application
Android application

Data de registro: 04 Mai 2010, 13:28
Mensagens: 55
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Ok Antunes entendi a parada, meu método no Webservice retorna uma List de objetos, se for mais de 2 usuário ele retorna como array, mas se for só 1 ele não retorna como array, como você tratam esse caso?

_________________
http://n3t0l0b0.blogspot.com/
http://twitter.com/netolobo


10 Nov 2011, 17:18
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 12 Mar 2011, 13:32
Mensagens: 109
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Fala rapaz! Tudo bom?
Lá na primeira página deste tópico, o antunes me ajudou com um tópico certeiro.
Dê uma olhada...

"O jersey não é muito bom pra passar array de objetos e dá uns problemas com o GSON, que pelo visto vc não está usando, que aproveito pra te aconselhar a usar ele no android.
Aí é que está a malandragem. O que eu fiz, no projeto que te mandei, foi o seguinte:
* No WS uso o próprio GSON pra criar o JSON e devolvo uma simples string."


@GET
    @Path("/listaCliente")
    @Produces(MediaType.APPLICATION_JSON)
    public String getListaClientes(@Context HttpHeaders headers) {

        Gson gson = new Gson();
        String listaCliente = gson.toJson(new ClienteSimplesBusiness().buscarLista()); //esse método devolve um arraylist do tipo cliente simples
        return listaCliente;
    }
 
 


No android eu pego essa string, coloco ela num array comum e depois faço um "for" pra pegar cada posição desse array e passar pro meu array "tipado".


public ArrayList<ClienteSimples> getListaClientes(String url) {
        String result = queryRESTurl(url);
        if (result == null) {
            Log.e("NGVL", "Falha ao acessar WS");
            return null;
        }
        try {
            Gson gson = new Gson();
            ArrayList<ClienteSimples> listaClientes = new ArrayList<ClienteSimples>();
            JsonParser parser = new JsonParser();
            JsonArray array = parser.parse(result).getAsJsonArray();
           
            for (int i = 0; i < array.size(); i++) {
                listaClientes.add(gson.fromJson(array.get(i), ClienteSimples.class));
            }

            return listaClientes;
        } catch (Exception e) {
            Log.e("WS", e.toString());
            return null;
        }
    }
 


Qualquer dúvida, posta aí que nós te ajudamos.

_________________
Marcos Roberto da Fonseca
Desenvolvimento de software

Maiores informações:
http://zipersoft.com.br e tem também nosso blog: http://zipersoft.com.br/blog


10 Nov 2011, 18:14
Perfil
Android application
Android application

Data de registro: 04 Mai 2010, 13:28
Mensagens: 55
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Muito obrigado Marquinho adaptei a sua solução aqui e funcionou perfeitamente. Um muito obrigado também ao Antunes que está sempre aqui disposto a ajudar.

_________________
http://n3t0l0b0.blogspot.com/
http://twitter.com/netolobo


11 Nov 2011, 12:55
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 12 Mar 2011, 13:32
Mensagens: 109
Mensagem Re: [ARTIGO] Webservice com jSON completo.
:P
Bom dia!
Maravilha que funcionou.
Fiquei feliz agora!
O portal está aqui pra isso, ajudar!
Qualquer dúvida, por favor, pergunte.

_________________
Marcos Roberto da Fonseca
Desenvolvimento de software

Maiores informações:
http://zipersoft.com.br e tem também nosso blog: http://zipersoft.com.br/blog


14 Nov 2011, 09:11
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 06 Nov 2010, 15:32
Mensagens: 150
Localização: Rio Preto - MG - Brazil
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Opa... alguem aki usa um webserver feito em delphi xe pra passar e receber json?

_________________
App: Minha Saúde (Acompanhamento de peso e saúde)
App: EncomenDEX. Rastreie sedex, cartas registradas, etc...
App: Caça Palavras
App: Caça Palavras Bíblico


17 Nov 2011, 10:22
Perfil
What is Android?
What is Android?

Data de registro: 18 Nov 2011, 21:19
Mensagens: 3
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Olá galera preciso da ajuda de vcs, li o topico inteiro mas ainda assim estou com problemas!
Tenho um aplicativo android que deve interagir com um servidor java, que por sua ver interagi com a porta serial. Portanto a informação que devo passar para o servidor é somente um numero ou uma letra. A duvida é, é preciso necessariamente passar essa informação atravez de Json? Ou posso enviar atrazes de um POST normal? Até consegui enviar a informação, mas o programa só consegue enviar uma vez a solicitação, depois o botão não funciona mais, sendo necessario fechar e abrir novamente a aplicação android.
Agradeço muitissimo a ajuda!
Aqui vai um pedaço do codigo pra quem puder ajudar:

public class Main extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        final ToggleButton botao = (ToggleButton) findViewById(R.id.toggleButton1);
        botao.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                // Perform action on clicks
                final String b;    

                if (botao.isChecked()) {
                     b = "1"           
                   
                    Toast.makeText(Main.this, "Ligado", Toast.LENGTH_SHORT).show();
                } else {
                     b = "0";
           
                    Toast.makeText(Main.this, "Desligado", Toast.LENGTH_SHORT).show();
                }
               
       
                String url = "xxxxxxxxxxxxxxxxxxxxxxxx";
                setContentView(R.layout.main);
                HttpClient client = new DefaultHttpClient();
                HttpPost post = new HttpPost(url);

                try {

                    List<NameValuePair> pairs = new ArrayList<NameValuePair>();
                    pairs.add(new BasicNameValuePair("a", b));
                    post.setEntity(new UrlEncodedFormEntity(pairs));
                    HttpResponse response = client.execute(post);
                } catch (ClientProtocolException e) {
                    // TODO Auto-generated catch block
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });    
}

}


bom a ultima tentativa que fiz estava assim, fiz mta besteira ;p?


18 Nov 2011, 21:29
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 12 Mar 2011, 13:32
Mensagens: 109
Mensagem Re: [ARTIGO] Webservice com jSON completo.

Bom dia João Augusto. Como vai?
Tá trabalhando com Arduíno cara?
;)

Vamos lá.
Seguinte amigo, fica legal não só no Android, mas em qualquer linguagem separar o código "por funcionalidades" sabe. Deixar na Classe Activity só o básico.
Então, normalmente criamos um pacote só pra concentrar as Classes que são o Webservice, propriamente dito.
E dentro desse pacote, normalmente fazemos uma Classe que faz o envio/recebimento de informações via webservice e outra Classe para prover o serviço de envio/ recebimento de algo via webservice.

Então abaixo eu vou colocar pra você dois métodos: o primeiro, faz o envio para um endereço de Webservice e o segundo método é usado lá no projeto do webservice, que é a recepção do que foi enviado, sabe.

Qualquer dúvida/problema só avisar cara!!



public static void doPost(String envio, String endereco){
        /*
         * MÉTODO QUE ENVIA QUALQUER COISA AO WEBSERVICE
         */

       
        try {
           
            StringEntity sEntity = new StringEntity(envio, "UTF-8");
            sEntity.setContentType("application/json"); // Definição de como será o conteúdo a ser enviado.
            DefaultHttpClient httpclient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(endereco);
            httpPost.setEntity(sEntity);
            HttpResponse response = httpclient.execute(httpPost);
       
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }      
       
    }
 



**************************************************************


 @POST
    @Path("gravar")
    @Consumes(MediaType.APPLICATION_JSON)
        public void saveFromJSON(Usuario usuario) {
        try {
 
            UsuarioDAO.inserirUsuario(usuario);
            System.out.println("Recebido = " + usuario.getNome());

        } catch (Exception e) {
            System.out.println(e.toString());
        }
    }
 

_________________
Marcos Roberto da Fonseca
Desenvolvimento de software

Maiores informações:
http://zipersoft.com.br e tem também nosso blog: http://zipersoft.com.br/blog


21 Nov 2011, 10:16
Perfil
What is Android?
What is Android?

Data de registro: 18 Nov 2011, 21:19
Mensagens: 3
Mensagem Re: [ARTIGO] Webservice com jSON completo.
marquinhofonceka escreveu:

Bom dia João Augusto. Como vai?
Tá trabalhando com Arduíno cara?
;)

Vamos lá.
Seguinte amigo, fica legal não só no Android, mas em qualquer linguagem separar o código "por funcionalidades" sabe. Deixar na Classe Activity só o básico.
Então, normalmente criamos um pacote só pra concentrar as Classes que são o Webservice, propriamente dito.
E dentro desse pacote, normalmente fazemos uma Classe que faz o envio/recebimento de informações via webservice e outra Classe para prover o serviço de envio/ recebimento de algo via webservice.

Então abaixo eu vou colocar pra você dois métodos: o primeiro, faz o envio para um endereço de Webservice e o segundo método é usado lá no projeto do webservice, que é a recepção do que foi enviado, sabe.

Qualquer dúvida/problema só avisar cara!!



public static void doPost(String envio, String endereco){
        /*
         * MÉTODO QUE ENVIA QUALQUER COISA AO WEBSERVICE
         */

       
        try {
           
            StringEntity sEntity = new StringEntity(envio, "UTF-8");
            sEntity.setContentType("application/json"); // Definição de como será o conteúdo a ser enviado.
            DefaultHttpClient httpclient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(endereco);
            httpPost.setEntity(sEntity);
            HttpResponse response = httpclient.execute(httpPost);
       
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }      
       
    }
 



**************************************************************


 @POST
    @Path("gravar")
    @Consumes(MediaType.APPLICATION_JSON)
        public void saveFromJSON(Usuario usuario) {
        try {
 
            UsuarioDAO.inserirUsuario(usuario);
            System.out.println("Recebido = " + usuario.getNome());

        } catch (Exception e) {
            System.out.println(e.toString());
        }
    }
 


Olá marquinhofonceka, muito obrigado pela atenção!
Acho que entendi mais ou menos o que vc quis dizer. Vc quer dizer que eu deveria criar uma nova classe onde estariam meus metodos e na activity principal apenas chama-los?
Alias, consegui fazer aquele codigo que mandei funcionar direito parece que faltava a linha do Entity, porem nao utilizei Json para enviar os dados.


22 Nov 2011, 16:08
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 12 Mar 2011, 13:32
Mensagens: 109
Mensagem Re: [ARTIGO] Webservice com jSON completo.

Olá João Augusto.
Então, se funcionou ótimo.
Agora quando a separação que sugeri: fazem parte das boas práticas de desenvolvimento de software sabe.
A separação do código além de facilitar a manutenção futura evita que se reescreva muito o código.

Dê também uma atenção especial, no android, com relação a instância de objetos as vezes de forma esporádica.
Ao programar pra mobile, tenha sempre em mente que o que seu usuário ou cliente terá nas mãos é um aparelho celular ou tablet com alguns poucos Mhz ou Ghz de potência além de uma bateria.
Você sabia que a bateria do celular/tablet é nossa maior inimiga?
Sim, é verdade! Quanto mais usar memória/processador/rede maior será o consumo dela.
Comentei isso num outro tópico esses dias que talvez o grande desafio, senão o maior, para os desenvolvedores mobile é conseguir conciliar dois grandes fatores: de um lado uma aplicação mobile bonita - graficamente falando - e, rápida, ágil enquanto que, do outro lado: usando o minimo de recurso de hardware, garantindo a longa duração da bateria, minimo consumo de rede.
Fica aí a dica!!

/66

/44 No que eu puder lhe ajudar... conte comigo! Boa tarde!!!

_________________
Marcos Roberto da Fonseca
Desenvolvimento de software

Maiores informações:
http://zipersoft.com.br e tem também nosso blog: http://zipersoft.com.br/blog


22 Nov 2011, 18:07
Perfil
What is Android?
What is Android?

Data de registro: 18 Nov 2011, 21:19
Mensagens: 3
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Tenho o seguinte codigo do meu servidor java :

HashMap<String, String>  verifica= new HashMap<String, String>();
        verifica.put("message", "Funcionando");

        JSONObject json = JSONObject.fromObject(verifica);

        response.setContentType("application/json");
        PrintWriter out = response.getWriter();
        out.print(json);
        out.flush();


Agora, como faço pra pegar esse Json no android e apresentá-lo?!
Estou começando agora e ja tentei de varias formas mas sem sucesso.
Agradeço a ajuda! ^^


22 Nov 2011, 23:18
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 12 Mar 2011, 13:32
Mensagens: 109
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Olá João Augusto. Como vai?

Vamos lá..
No Android precisamos recuperar isso, certo.

Bom, primeiro de tudo, aconselho você a criar uma Classe que será seu Webservice, então essa Classe é que fará a comunicação com o "Mundo externo", enviando e recebendo coisas.

Então, vamos a primeira parte: abaixo basicamente é o que seu método que fará o consumo do Webservice terá que executar:
Então, numa String você recupera o que veio do Webservice e converte essa String para um JSONObject.
(Lembrando que se você esperar um ArrayList, você tem uma outra abordagem, se quiser, me avisa que eu passo)


String jsonObject = HTTPUtil.doGet("http://192.100.2.12:8080/projeto/usuario/retorno");
           
JSONObject response = new JSONObject(jsonObject);
 


Depois o que fazer com esse JSONObject response?
Converter ele para o objeto que você queira, assim:


        public static Usuario converterParaObjeto(JSONObject obj) throws JSONException{
        return new Usuario(obj.getInt("id"), obj.getString("nome"));
    }
 


Ali, no primeiro código, tem uma Classe HTTPUTIL chamando um método doGet() né? Está abaixo a codificação da Classe. Ela é cartinha marcada, já vi codificação dela em vários lugares e sempre seguirá a mesma lógica.. mas, normalmente é "bater e pegar", sabe!


     public static String doGet(String url) throws Exception{
        DefaultHttpClient httpClient = new DefaultHttpClient();
       
        HttpGet httpGet = null;
        try {
            httpGet = new HttpGet(url);
            HttpResponse response;
            response = httpClient.execute(httpGet);

            HttpEntity entity = response.getEntity();
            if (entity != null) {
                int statusCode = response.getStatusLine().getStatusCode();
                if(statusCode != HttpStatus.SC_OK){
                    if(statusCode == HttpStatus.SC_UNAUTHORIZED){
                        throw new Exception("Acesso não autorizado");
                    } else {
                        throw new IOException("Erro HTTP " + statusCode);
                    }
                }              
                return convertStreamToString(entity.getContent());
            }
        } catch (IOException ex) {
            if (httpGet != null) {
                httpGet.abort();
            }
            throw ex;
        }
        return null;
    }
 


Basicamente o que você faz:
"Manda seu Android ir buscar alguma coisa, um objeto, lista, em algum endereço de WebService."

Espero que consiga entender e na dúvida, só chamar!!

_________________
Marcos Roberto da Fonseca
Desenvolvimento de software

Maiores informações:
http://zipersoft.com.br e tem também nosso blog: http://zipersoft.com.br/blog


29 Nov 2011, 16:16
Perfil
Android application
Android application

Data de registro: 04 Mai 2010, 13:28
Mensagens: 55
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Fala pessoal estou tendo um problema com o retorno do webservice, os caracteres com acentuação e "ç" voltam estranhos. No meu webservice tenho um banco de dados mysql e faço a persistencia dos dados usando o hibernate. Já testei aqui e os dados estão sendo gravados no mysql corretamente, fiz uns teste e vi que até o momento da criação do objeto para depois converter para gson, tá tudo normal na acentuação, só que quando recebo os dados no cliente ele já vem desconfigurados. Já tentei várias tipos de codificação banco e nada. Estou fazendo dessa forma abaixo.


@GET
    @Path("/listaCliente")
    @Produces(MediaType.APPLICATION_JSON)
    public String getListaClientes(@Context HttpHeaders headers) {

        Gson gson = new Gson();
        String listaCliente = gson.toJson(new ClienteSimplesBusiness().buscarLista()); //esse método devolve um arraylist do tipo cliente simples
        return listaCliente;
    }
 
 



No Android


public ArrayList<ClienteSimples> getListaClientes(String url) {
        String result = queryRESTurl(url);
        if (result == null) {
            Log.e("NGVL", "Falha ao acessar WS");
            return null;
        }
        try {
            Gson gson = new Gson();
            ArrayList<ClienteSimples> listaClientes = new ArrayList<ClienteSimples>();
            JsonParser parser = new JsonParser();
            JsonArray array = parser.parse(result).getAsJsonArray();
           
            for (int i = 0; i < array.size(); i++) {
                listaClientes.add(gson.fromJson(array.get(i), ClienteSimples.class));
            }

            return listaClientes;
        } catch (Exception e) {
            Log.e("WS", e.toString());
            return null;
        }
    }
 

_________________
http://n3t0l0b0.blogspot.com/
http://twitter.com/netolobo


30 Nov 2011, 21:44
Perfil
What is Android?
What is Android?

Data de registro: 18 Dez 2011, 00:47
Mensagens: 2
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Ola,

Estou tentando receber um json do meu aplicativo android para o vraptor mais nao estou conseguindo:

Segue codigo Andoird:



    private String endereco = "http://10.0.2.2:8080/recebeAlunoDoAndroid";

    public void sincronizar() {
        progress = ProgressDialog.show(context, "Aguarde...", "Envio de dados para a web", true, true);
        aviso = Toast.makeText(context, "Dados enviados com sucesso", Toast.LENGTH_LONG);
        new Thread(new Runnable(){
            @Override
            public void run() {
                try {
                    Thread.sleep(500);
               
                    AlunoDAO dao = new AlunoDAO(context);
                    List<Aluno> lista = dao.getLista();
                    dao.close();
                   
                    HttpClient httpClient = new DefaultHttpClient();
                   
                    String listaEmJSON = new JSONHelper().toJSON(lista);
                   
                    Log.i("---REQUISICAO", listaEmJSON);
                   
                    String url = endereco;
                   
                    HttpPost httpPost = new HttpPost(url);
                   
                    StringEntity entity = new StringEntity(listaEmJSON,"UTF-8");
                    entity.setContentType("application/json");
                    httpPost.setEntity(entity);
                   
                    httpPost.setHeader("Accept", "application/json");
                    httpPost.setHeader("Content-type", "application/json");
                   
                    HttpResponse response = httpClient.execute(httpPost);
                   
                    String jsonDeResposta = EntityUtils.toString(response.getEntity());
                   
                    Log.i("---REPOSTA:", jsonDeResposta);
                   
                    aviso.setText(jsonDeResposta);
                   
                    progress.dismiss();
                    aviso.show();
               
                   
                } catch (Exception e) { 
                    Log.e("LASCOU","Oops" ,e);
                    e.printStackTrace();
                }
            }
        }).start();
    }

 


Meu codigo Vraptor



    @Post("/recebeAlunoDoAndroid")
    @Consumes("application/json")
    public void recebeAlunoDoAndroid(List<Aluno> list) {
        System.out.println("Teste: " +list);
    }

 


O json e gerado corretamente : {"list":[{"aluno":{"id":2,"nome":"Thiagoooooo","telefone":"123","endereco":"rua crato","nota":0,"site":"www.site.com.br"}}]}

Mais so recebe esse erro:

jetty] 2011-12-17 23:36:33.417:org.apache.jasper.servlet.JspServlet:WARN:  PWC6117: File "/Users/cherubini/Documents/Projetos/Android/serverandroid/src/main/webapp/WEB-INF/jsp/aluno/recebeAlunoDoAndroid.json.jsp" not found

 



Alguem tem alguma dica???

Obrigado


18 Dez 2011, 00:52
Perfil
What is Android?
What is Android?

Data de registro: 18 Dez 2011, 00:47
Mensagens: 2
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Eu consegui executar o metodo do vraptor, o erro de jsp not found ainda continua, mais assim pelo menos mostra o syso igual a 2:


    @Post("/recebeAlunoDoAndroid")
    @Consumes("application/json")
    public void recebeAlunoDoAndroid(List<Aluno> list) {
       

            System.out.println("Teste: " + list.size());

       
    }

 


Porem quando tento iterar no for e pegar o objeto aluno acontece o seguinte erro:


    @Post("/recebeAlunoDoAndroid")
    @Consumes("application/json")
    public void recebeAlunoDoAndroid(List<Aluno> list) {
       
        for (Aluno aluno : list) {
            System.out.println("Teste: " + aluno.getNome());
        }
       
    }

 



[jetty] 2011-12-18 16:54:28.890::WARN:  /recebeAlunoDoAndroid
    [jetty] br.com.caelum.vraptor.InterceptionException: exception raised, check root cause for details: java.lang.ClassCastException: java.util.ArrayList cannot be cast to br.com.embraer.models.Aluno
    [jetty]     at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:96)
    [jetty]     at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
    [jetty]     at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
    [jetty]     at br.com.caelum.vraptor.interceptor.DeserializingInterceptor.intercept(DeserializingInterceptor.java:101)
    [jetty]     at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
    [jetty]     at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
    [jetty]     at br.com.caelum.vraptor.util.jpa.JPATransactionInterceptor.intercept(JPATransactionInterceptor.java:51)
    [jetty]     at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
    [jetty]     at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
    [jetty]     at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83)
    [jetty]     at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
    [jetty]     at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
    [jetty]     at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48)
    [jetty]     at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
    [jetty]     at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
    [jetty]     at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71)
    [jetty]     at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
    [jetty]     at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
    [jetty]     at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:89)
    [jetty]     at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
    [jetty]     at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
    [jetty]     at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)
    [jetty]     at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
    [jetty]     at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
    [jetty]     at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:23)
    [jetty]     at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
    [jetty]     at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)
    [jetty]     at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
    [jetty]     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115)
    [jetty]     at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
    [jetty]     at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
    [jetty]     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115)
    [jetty]     at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:361)
    [jetty]     at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    [jetty]     at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    [jetty]     at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
    [jetty]     at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
    [jetty]     at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
    [jetty]     at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
    [jetty]     at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    [jetty]     at org.mortbay.jetty.Server.handle(Server.java:324)
    [jetty]     at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
    [jetty]     at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879)
    [jetty]     at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:741)
    [jetty]     at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:207)
    [jetty]     at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403)
    [jetty]     at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
    [jetty]     at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522)
    [jetty] Caused by: java.lang.ClassCastException: java.util.ArrayList cannot be cast to br.com.embraer.models.Aluno
    [jetty]     at br.com.embraer.controllers.AlunoController.recebeAlunoDoAndroid(AlunoController.java:34)
    [jetty]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    [jetty]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    [jetty]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    [jetty]     at java.lang.reflect.Method.invoke(Method.java:597)
    [jetty]     at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:61)
    [jetty]     ... 47 more


 


Alguma ideia?


18 Dez 2011, 17:59
Perfil
What is Android?
What is Android?

Data de registro: 18 Nov 2010, 23:33
Mensagens: 7
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Pessoal boa tarde, como fazer para chamar cada evento em um botao diferente. Tipo tenho dois botoes um para listar os dados do webservice e outro para enviar dados para o webservice. Tenho que criar duas Threads para isso?? como ficaria isso em código??


03 Jan 2012, 17:50
Perfil
What is Android?
What is Android?

Data de registro: 22 Ago 2011, 00:02
Mensagens: 6
Mensagem Re: [ARTIGO] Webservice com jSON completo.
No webService eu estou fazendo isso
   
    protected void doPost(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
       
        JSONArray jArray = new JSONArray();

        try {
            jArray = userDao.carregarLogins();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        JSONArray gSon = JSONArray.fromObject(jArray);
   
        response.setContentType("application/json");

        PrintWriter out = response.getWriter();
        // Pega a Stream de Saída do servidor que sera utilizada para enviar a
        // resposta JSON
        out.print(gSon);// Escreve a resposta no formato JSON na Stream de saída
                        // que será recebida pela aplicação cliente
        out.flush();
    }


E no android
   private void JSONFile(String url){
        try{
           
            //Le a pagina
            GetHttp http = new GetHttp(url);
            // page contem a string json
            page = http.page;
           
            //nativo do SDK  da o parse da string json
            JSONObject object = (JSONObject) new JSONTokener(page).nextValue();
           
            // monta o array do retorno do json, lembrando que retorno é o PAI do json impresso em page.
            //{"retorno":[ {"campo1":"valor1"},{"campo2":"valor2"},{"campo3":"valor3"} ]}
            JSONArray message = object.getJSONArray("gSon");
           
            //Percorre o array retornado
            //campo1, 2 e 3 são os nós da string json {"campo1":"valor1"},{"campo2":"valor2"},{"campo3":"valor3"}
            for(int i=0;i<message.length();i++){
                JSONObject lines = (JSONObject) new JSONTokener(message.getString(i)).nextValue();
                Log.d("WS", "[Retorno do WS]");
                Log.d("WS", "Retorno: "+ lines.getString("usuario") );
                Log.d("WS", "[/Retorno do WS]");
            }
           
            Log.d("WS", "Sincronizado com sucesso");
            pd.dismiss();
        }catch (Exception e) {
            Log.e("WS",e.toString());
        }
    }



Debuguei e da o seguinte erro no logCat
02-13 01:49:43.931: ERROR/WS(938): java.lang.ClassCastException:

Na linha

JSONArray message = object.getJSONArray("gSon");


Aguem pode me ajudar ?:


14 Fev 2012, 00:30
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Dê uma olhada aqui: viewtopic.php?f=7&t=17389
E aqui: viewtopic.php?f=7&t=17465

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


14 Fev 2012, 01:25
Perfil WWW
What is Android?
What is Android?

Data de registro: 24 Mar 2012, 18:16
Mensagens: 8
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Boa tarde, pessoal.

Consegui fazer o WS me devolver o seguinte:

[{"_id":"1","numero":"123456","entregador_matricula":"85621218"},{"_id":"3","numero":"123458","entregador_matricula":"85621218"}]


Mas agora preciso usar cada informação separada daí.

Quero colocar os "numero" e uma das "entregador_matricula" em Strings diferentes.

Como eu poderia fazer?

Atenciosamente,

Fernando


05 Mai 2012, 20:19
Perfil
What is Android?
What is Android?

Data de registro: 09 Mai 2012, 14:34
Mensagens: 1
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Caros senhores, estou tentando simular esta aplicação em meu sistema.
No entanto quando rodo a aplicação ela mostra a mensagem "Aguarde, Sincronizando com WebService" e não sai mais dai.
Obrigado.


09 Mai 2012, 14:47
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Tentem consumir dessa forma: viewtopic.php?f=7&t=17465

É muito mais simples!!

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


10 Mai 2012, 04:05
Perfil WWW
What is Android?
What is Android?

Data de registro: 24 Mar 2012, 18:16
Mensagens: 8
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Ainda estou engatinhando com tudo isso, perdão se minhas perguntas parecerem "noobs" demais.

Meu código que recebe o JSON está desta forma:


.
.
.
String response = null;  
                try {  
                    response = CustomHttpClient.executeHttpPost("http://*********/check.php", postParameters);
                   
                    JSONArray array = new JSONArray(response.toString());

                    String[] num = new String[array.length()];

                    for(int i=0;i<array.length();i++){
                        JSONObject object = array.getJSONObject(i);
                        num[i] = object.getString("numero");
                    }
                   
                    if(array.equals("0"))
                        error.setText("Matrícula ou Senha incorreta !");
                   
                    else {
                        String matricula = matr.getText().toString();
                        Intent listarlis = new Intent(Bex2Activity.this, listalis.class);
                        listarlis.putExtra("mat", matricula);
                        listarlis.putExtra("list1", num[0]);
                        listarlis.putExtra("list2", num[1]);
                        Bex2Activity.this.startActivity(listarlis);
                        Bex2Activity.this.finish();
                    }
                   
                } catch (Exception e) {
                    Log.e("WS", e.toString());  
                    }
            }
        });
 


Mas quando vou mudar de Activity, isso não acontece. Recebo esta mensagem no Log:


05-11 21:14:59.627: E/WS(629): org.json.JSONException: A JSONArray text must start with '[' at character 1 of 0

Mas meu PHP está imprimindo o seguinte na tela, quando consultado:

[{"numero":"123456"},{"numero":"123458"}]

Então não sei o por que deste erro.

O que eu poderia mudar no código?


11 Mai 2012, 20:29
Perfil
Android application
Android application

Data de registro: 04 Mai 2012, 22:13
Mensagens: 83
Mensagem Re: [ARTIGO] Webservice com jSON completo.
galera fiz tou fazendo um app que vai ligar em um bd mysql
ai me falaram que essa conexão so pode ser feita se usar o json...

pelo oque eu entendi tenho que ter umm arquivo php na net...
e uns xml's no meu projeto....

mais onde entra esses xml no meu projeto....
e onde pego seu drive para coloca no projeto... se é a mesma coisa que um jdbc..
ou nem existe drive...

sei que é basico a pergunta,...mais e duvida de varias pessoas


26 Jul 2012, 11:35
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Flip_novidade escreveu:
galera fiz tou fazendo um app que vai ligar em um bd mysql
ai me falaram que essa conexão so pode ser feita se usar o json...

pelo oque eu entendi tenho que ter umm arquivo php na net...
e uns xml's no meu projeto....

mais onde entra esses xml no meu projeto....
e onde pego seu drive para coloca no projeto... se é a mesma coisa que um jdbc..
ou nem existe drive...

sei que é basico a pergunta,...mais e duvida de varias pessoas


Dê uma olhada nesse artigo que vai te ajudar!!

viewtopic.php?f=7&t=17389

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


26 Jul 2012, 21:07
Perfil WWW
Android application
Android application

Data de registro: 04 Mai 2012, 22:13
Mensagens: 83
Mensagem Re: [ARTIGO] Webservice com jSON completo.
antunes, meu grande amigo
poderia mi dar uma ajuda...
tenho que fazer um app listar dados de um bd mysql...
como posso fazer essa conexão COM O bd....
qual a menira mais facil e sugura...
me de sua opinião para esse ponto de partida...
qual a meneira mais facil?
o aap tah todo feito aqui... so preciso listar os dados....(no moneto uso dados do sql lite)(quase todos feito....)
Web service?
Json?

uma coisa consegui me conectar com o bd usando java puro...usando android não consegui.

muito obrigado


27 Jul 2012, 13:57
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Foi o que eu falei no meu post anterior, veja esses três artigos!!

viewtopic.php?f=7&t=17389
viewtopic.php?f=7&t=17465
viewtopic.php?f=7&t=17638

Tem a sua solução completa neles!!

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


27 Jul 2012, 15:41
Perfil WWW
What is a Activity?
What is a Activity?

Data de registro: 22 Nov 2012, 11:05
Mensagens: 12
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Antunes bom dia,

Eu estou retornando um Json com informações do Google para a Descrição do trajeto entre o Ponto A e o Ponto B,porem ele me retorna as informações em portugues legalzinha,porem qdo eu vou recebe-las no meu Android via Json ele me converte as informações para ingles como eu faço para resolver isso ??

Segue a minha url que retorna as informações

https://maps.googleapis.com/maps/api/di ... ensor=true

se vc olhar as informações estao em portugues porem qdo eu vou usa-la ela me retorna em ingles

segue linha de codigo


    public final String[] getString(String url){
       
        String[] result = new String[2];
        HttpGet httpGet = new HttpGet(url)
        HttpResponse response;     
       
        try {
            response = HttpClientSingleton.getHttpClientInstace().execute(httpGet);
            HttpEntity entity = response.getEntity();
           
            if (entity != null) {
                result[0] = String.valueOf(response.getStatusLine().getStatusCode());
                InputStream inputStream = entity.getContent();
                result[1] = toString(inputStream);
                inputStream.close();
               
                Log.i("get", "Result from post JsonPost : " + result[0] + " : " + result[1]);
            }
           
        } catch (Exception e){
             Log.e("NGVL", "Falha ao acessar Web service", e);
             result[0] = "0";
             result[1] = "Falha de rede!";
        }
        return result;
    }
 


Desde ja agradeço a atenção


08 Jan 2013, 11:05
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Provavelmente é o header "Accept-Language" da sua requisição!

Accept-Language:pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3


Esse é o usado no browser (pelo menos no meu) quando a requisição é feita.

Tenta colocá-la na sua requisição pelo android.

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


08 Jan 2013, 15:31
Perfil WWW
What is a Activity?
What is a Activity?

Data de registro: 05 Nov 2012, 17:01
Mensagens: 11
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Oi...

Eu criei uma aplicação que envia um byte[] para meu ws soap, primeiro converti meu arquivo (jpeg,pdf,txt) e envio.
O soap usa XML como padrão para enviar para meu ws.
Como faço para fazer o envio com Json??

Obrigada


09 Mar 2013, 16:55
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Jaini escreveu:
Oi...

Eu criei uma aplicação que envia um byte[] para meu ws soap, primeiro converti meu arquivo (jpeg,pdf,txt) e envio.
O soap usa XML como padrão para enviar para meu ws.
Como faço para fazer o envio com Json??

Obrigada


Rapaz,

Te aconselho a ler mais sobre SOAP. Ele não trabalha com JSON, apenas XML!!

http://pt.wikipedia.org/wiki/SOAP
http://stackoverflow.com/questions/9140 ... -with-json

Se quiser trabalhar com JSON, crie um WS Rest!

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


09 Mar 2013, 20:45
Perfil WWW
Hello World!
Hello World!

Data de registro: 12 Mar 2014, 00:03
Mensagens: 25
Mensagem Re: [ARTIGO] Webservice com jSON completo.
Boa Noite,
Estou com uma dúvida aqui.

Eu fiz essa implementação, porém ele fica aparecendo SINCRONIZANDO COM O WEBSERVICE e fica processando, não saindo mais dessa parte.
Já dei o permisions INTERNET lá no androidmanifest

E o mais estranho é que no LogCat não aparece nenhum erro.
Eu fiz um system.out.println em algumas partes do código e vejo que ele passa essa parte thread.start(); e depois não vai mais pra lugar nenhum.
Se eu entrar pelo brownser do smartphone e digitar o endereco do webservice ele retorna a pagina corretamente.

      //Progresso por tempo indeterminado.
                pd = null;
                pd = ProgressDialog.show(ConexaoActivity.this,"Aguarde", "Sincronizando com WebService", true, false);
                //Inicia-se uma Thread para processar o webservice
                try{
                   
                    Thread thread = new Thread();
                    thread.start();
               //Até aqui ele passa, mas depois daqui não vai pra nenhum lugar.
                }catch (Exception e) {
                    pd.dismiss();
                    Log.e("WS", e.toString());
                }


Alguém saber porque ele não ta executando o metodo run()?


12 Mar 2014, 02:06
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: Re: [ARTIGO] Webservice com jSON completo.
marciofornari escreveu:
Boa Noite,
Estou com uma dúvida aqui.

Eu fiz essa implementação, porém ele fica aparecendo SINCRONIZANDO COM O WEBSERVICE e fica processando, não saindo mais dessa parte.
Já dei o permisions INTERNET lá no androidmanifest

E o mais estranho é que no LogCat não aparece nenhum erro.
Eu fiz um system.out.println em algumas partes do código e vejo que ele passa essa parte thread.start(); e depois não vai mais pra lugar nenhum.
Se eu entrar pelo brownser do smartphone e digitar o endereco do webservice ele retorna a pagina corretamente.

      //Progresso por tempo indeterminado.
                pd = null;
                pd = ProgressDialog.show(ConexaoActivity.this,"Aguarde", "Sincronizando com WebService", true, false);
                //Inicia-se uma Thread para processar o webservice
                try{
                   
                    Thread thread = new Thread();
                    thread.start();
               //Até aqui ele passa, mas depois daqui não vai pra nenhum lugar.
                }catch (Exception e) {
                    pd.dismiss();
                    Log.e("WS", e.toString());
                }


Alguém saber porque ele não ta executando o metodo run()?


Faltou vc implementar o método run() dessa thread que vc instanciou.

Olha um exemplo de thread:

http://www.caelum.com.br/apostila-java- ... s-anonimas

Abraços!

Enviado de meu XT1058 usando Tapatalk

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


13 Mar 2014, 03:32
Perfil WWW
Hello World!
Hello World!

Data de registro: 12 Mar 2014, 00:03
Mensagens: 25
Mensagem Re: Re: [ARTIGO] Webservice com jSON completo.
antunes escreveu:
marciofornari escreveu:
Boa Noite,
Estou com uma dúvida aqui.

Eu fiz essa implementação, porém ele fica aparecendo SINCRONIZANDO COM O WEBSERVICE e fica processando, não saindo mais dessa parte.
Já dei o permisions INTERNET lá no androidmanifest

E o mais estranho é que no LogCat não aparece nenhum erro.
Eu fiz um system.out.println em algumas partes do código e vejo que ele passa essa parte thread.start(); e depois não vai mais pra lugar nenhum.
Se eu entrar pelo brownser do smartphone e digitar o endereco do webservice ele retorna a pagina corretamente.

      //Progresso por tempo indeterminado.
                pd = null;
                pd = ProgressDialog.show(ConexaoActivity.this,"Aguarde", "Sincronizando com WebService", true, false);
                //Inicia-se uma Thread para processar o webservice
                try{
                   
                    Thread thread = new Thread();
                    thread.start();
               //Até aqui ele passa, mas depois daqui não vai pra nenhum lugar.
                }catch (Exception e) {
                    pd.dismiss();
                    Log.e("WS", e.toString());
                }


Alguém saber porque ele não ta executando o metodo run()?


Faltou vc implementar o método run() dessa thread que vc instanciou.

Olha um exemplo de thread:

http://www.caelum.com.br/apostila-java- ... s-anonimas

Abraços!

Enviado de meu XT1058 usando Tapatalk


Antunes, na verdade eu não coloquei o método run() aqui no exemplo, mas minha Activity tinha sim.
O problema é que ele não entrava no método run(), depois que fazia o thread.start ele parava.

Então já consegui resolver o problema alterando

o código
Thread thread = new Thread();
para
Thread thread = new Thread(MinhaActivity.this);

Não sei exatamente porque não entrava no metodo run antes. Mas enfim agora ta beleza.

Só agora fiquei com uma dúvida, se eu quizer receber dois arrays no mesmo json é a forma mais correta?
por exemplo que vou conectar no meu webservice e quero buscar os Clientes, os Produtos, os Vendedores, cada um virá em um json assim:
{"clientes":[{"campo1":"valor1"},{"campo2":"valor2"},{"campo3":"valor3"}]}
{"produtos":[{"campoRet1":"valor1"},{"campoRet2":"valor2"},{"campoRet3":"valor3"}]}
{"vendedores":[{"campoRet1":"valor1"},{"campoRet2":"valor2"},{"campoRet3":"valor3"}]}


Como que ficaria essa parte?? eu teria que ter um metodo para cada Array?
private void JSONFile(String url){
        try{
           
            //Le a pagina
            GetHttp http = new GetHttp(url);
            // page contem a string json
            page = http.page;
           
            //nativo do SDK  da o parse da string json
            JSONObject object = (JSONObject) new JSONTokener(page).nextValue();
           
            // monta o array do retorno do json, lembrando que retorno é o PAI do json impresso em page.
            //{"retorno":[ {"campo1":"valor1"},{"campo2":"valor2"},{"campo3":"valor3"} ]}
            JSONArray message = object.getJSONArray("retorno");
           
            //Percorre o array retornado
            //campo1, 2 e 3 são os nós da string json {"campo1":"valor1"},{"campo2":"valor2"},{"campo3":"valor3"}
            for(int i=0;i<message.length();i++){
                JSONObject lines = (JSONObject) new JSONTokener(message.getString(i)).nextValue();
                Log.d("WS", "[Retorno do WS]");
                Log.d("WS", "Retorno: "+ lines.getString("campo1") );
                Log.d("WS", "Retorno: "+ lines.getString("campo2") );
                Log.d("WS", "Retorno: "+ lines.getString("campo3") );
                Log.d("WS", "[/Retorno do WS]");
            }
           
            Log.d("WS", "Sincronizado com sucesso");
            pd.dismiss();
        }catch (Exception e) {
            Log.e("WS",e.toString());
        }
    }
   
}


13 Mar 2014, 13:38
Perfil
Mostrar mensagens anteriores:  Organizar por  
Responder Tópico   [ 154 Mensagens ]  Ir para a página Anterior  1, 2, 3, 4  Próximo

Quem está online

Usuários vendo este fórum: americano, amos, Andreid, apoena, Arthas, Biel, blurkness, BMaia, brazucx, breko, brenda, btminzon, caciara, camilodev, canaville, car.demarco, cariabs8, carlos rodrigues, carlos.macleod, cehills, celiapinheiro, cfranca, Comandante Cody, craudiao, Damiani Oliveira, Darkluna, dfreitas, du_sr, eferrari, Emanuella, espinhara.net, everaldo, fabrizior, faco, Felipe, felipecomp19, ferrodecaju, fracon, frances135, freina, FVB, geovanebg, gfgodoy, Google Android, Google Desktop, hopper.frf, HyagoRules, Igor_M, jacard, jairom, Jalerson, jaydson, jefficojava, juliana_costa, jzaires, lanlan, leo, lfalcao, Lincoln, lucianoedipo, luizcyber, m4v0, Mace Windu, Maiquell, marcelocastellani, MarceloMC, marcos_trb, Marini, Mayara Trevisol, mcurtis, mikasjau, Moisés Souto, monteirojp, mravel, Mvitor, mvoto, nakahara, navegador, nfaria, nilsgome, osternack, PAMinhoto, paulanegreiros, phpower1, Qui-Gon Jinn, raninhofernandes, rocha, rodrigo_mg, rogeriopgomes, ROGÉRIO RODRIGUES, Roll, romualdo, rsl_master, silvio.carlos, Synoo [Bot], talves, tavares767, thiagoalgo, tiagofalcao, tnarnold, Tognoli, Toks, Vinicius, W3 [Sitesearch], wcaciano, weverton e 2 visitantes


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode enviar anexos neste fórum

Procurar por:

© 2007 - 2016 Portal Android - Comunidade de Desenvolvedores Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi