Krystian Solarz

Krystian Solarz Student, WSIZ

Temat: Problem z pobieraniem danych JSON

Witam, buduję sobie szkoleniowo aplikacje i w pewnym momencie potrzebuję pobrać dane z bazy danych, pobrałem je za pomocą pliku php na strone, tam wygenerowałem format JSON i czytam go sobie normalnie przez aplikacje. Problem polega na tym, że aplikacja działa tylko i wyłączenie na emulatorze, a na urządzeniu fizycznym już aplikacja jest zatrzymana. Bardzo bym prosił o jakąś podpowiedz bo szczerze powiedziawszy brak pomysłów.

przykladowy kod ze stronki
{ "user": [ { "id": "1", "name": "Anna", "email": "bezraczek@com" } ] } 


i kod
package pl.przyklad.jsontest;

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

import android.os.Bundle;
import android.widget.TextView;
import android.app.Activity;

public class MainActivity extends Activity {

private static String url = "http://costamcost/JSON/";
private static final String TAG_USER = "user";
private static final String TAG_ID = "id";
private static final String TAG_NAME = "email";
private static final String TAG_EMAIL = "name";

JSONArray user = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

JsonParser jparser = new JsonParser();
JSONObject jo = jparser.getJSONFromUrl(url);

try{
user = jo.getJSONArray(TAG_USER);
JSONObject d = user.getJSONObject(0);
String id2 = d.getString(TAG_ID);
String name2 = d.getString(TAG_NAME);
String email2 = d.getString(TAG_EMAIL);

final TextView tvId2 = (TextView)findViewById(R.id.tv_id_id2);
final TextView tvName2 = (TextView)findViewById(R.id.tv_imie_id2);
final TextView tvEmail2 = (TextView)findViewById(R.id.tv_nazwisko_id2);

tvId2.setText(id2);
tvName2.setText(name2);
tvEmail2.setText(email2);

}catch(JSONException e){
e.printStackTrace();
}
}

}


i jeszcze JsonParser

package pl.przyklad.jsontest;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONObject;

import android.util.Log;

public class JsonParser {

static InputStream is = null;
static JSONObject jsono = null;
static String json = "";

public JsonParser(){}

public JSONObject getJSONFromUrl(String url){
try{
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);

HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
}catch(UnsupportedEncodingException e ){
e.printStackTrace();
}catch(ClientProtocolException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}

try{
BufferedReader br = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while((line = br.readLine()) != null){
sb.append(line + "\n");
}
is.close();
json = sb.toString();
}catch(Exception e){
Log.e("Buffer Error", "Error Converting Result" + e.toString());
}

try{
jsono = new JSONObject(json);
}catch(Exception e){
Log.e("JSON Parser","Error Parsing Data" + e.toString());
}
return jsono;
}
}


Byłbym bardzo wdzięczny za jakąś podpowiedz bo zaczynam błądzić i chyba w złym kierunku idę.
Michał Kąkol

Michał Kąkol Rozwiązuję problemy,
przenoszę firmy do
internetu.

Temat: Problem z pobieraniem danych JSON

na glownym watku, jeszcze w onCreate ;P

sciaganie danych odpal w watku, zreszta o ile dobrze pamietam, nie mozna ruszyc nic z connectivty (czyli tez pobierania jakichkolwiek danych) na glownym watku

a wiec masz opcje:

asynctask (najprostszy i najszybszy w tym wypadku)
thread + handler
service

jeszcze sprawdz czy masz w manifescie permission internet

pozdrawiam,
Michal
Krystian Solarz

Krystian Solarz Student, WSIZ

Temat: Problem z pobieraniem danych JSON

Wielki dzięki ! :) Pozdrawiam serdecznie

Następna dyskusja:

Parsowanie danych pobranych...




Wyślij zaproszenie do