Merhaba, veri çekeceğim sitede json yok o yüzden android studio üzerinden nasıl veri çekebilirim. Yardımlarınızı bekliyorum.
Veri çekmeye çalıştığım site:
https://sbu2.saglik.gov.tr/QR/QR.aspx?kno=1008585476
Android studio internet sitesinden veriyi nasıl çekebilirim?
3
●280
- 12-11-2019, 23:12:34
- 12-11-2019, 23:23:23Selamlar, gerçekleştirmeniz gereken 2 işlem var
1- Önce retrofit yardımıyla network çağrısı yaparak verinin html halini elde edin
2- Jsoup yardımı ile html table i parse edin
Burada html table parse örneği mevcut.
Başarılar - 12-11-2019, 23:30:05Üyeliği durduruldu
- 03-12-2019, 01:21:16TayfunCesur35 adlı üyeden alıntı: mesajı görüntüle
Sorun neyde olabilir. Butona tıkladığımda hata program kendini kapatıyor. Sorun göremedim normalde çekmesi lazım değil mi?
Kodlarım:
import android.app.ProgressDialog;import android.os.AsyncTask;import android.support.annotation.NonNull;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.MenuItem;import android.view.View;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.ListView;import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.nodes.Element;import org.jsoup.select.Elements;import java.io.IOException;import java.net.URL;import java.util.ArrayList;public class RetroClient extends AppCompatActivity { private ListView lv; public ArrayList liste= new ArrayList(); private ArrayAdapter<String> adapter; private ProgressDialog progressDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.retroclient); lv=(ListView)findViewById(R.id.list); adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,liste); Button btn=(Button)findViewById(R.id.button); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { new VeriGetir().execute(); } }); } private class VeriGetir extends AsyncTask<Void, Void, Void> { @Override protected void onPreExecute() { super.onPreExecute(); progressDialog= new ProgressDialog(RetroClient.this); progressDialog.setTitle("VERİ"); progressDialog.setMessage("Lütfen bekleyiniz.."); progressDialog.setIndeterminate(false); progressDialog.show(); } @Override protected Void doInBackground(Void... voids) { try { URL url = new URL("https://sbu2.saglik.gov.tr/QR/QR.aspx?kno=1008585476"); Document doc = Jsoup.parse(url, 3000); Element table = doc.select("table").get(0); //select the first table. Elements rows = table.select("tr"); for (int i = 1; i < rows.size(); i++) { //first row is the col names so skip it. Element row = rows.get(i); Elements cols = row.select("td"); if (cols.get(7).text().equals("SİCİL NO")) { adapter.add(cols.get(7).text()); } } } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Void aVoid) { super.onPostExecute(aVoid); lv.setAdapter(adapter); progressDialog.dismiss(); } }}
Widex adlı üyeden alıntı: mesajı görüntüle
Jsoup denedim ama başarılı olamadım yardım edebilirmisiniz?
Kodlarım:
import android.app.ProgressDialog;import android.os.AsyncTask;import android.support.annotation.NonNull;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.MenuItem;import android.view.View;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.ListView;import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.nodes.Element;import org.jsoup.select.Elements;import java.io.IOException;import java.net.URL;import java.util.ArrayList;public class RetroClient extends AppCompatActivity { private ListView lv; public ArrayList liste= new ArrayList(); private ArrayAdapter<String> adapter; private ProgressDialog progressDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.retroclient); lv=(ListView)findViewById(R.id.list); adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,liste); Button btn=(Button)findViewById(R.id.button); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { new VeriGetir().execute(); } }); } private class VeriGetir extends AsyncTask<Void, Void, Void> { @Override protected void onPreExecute() { super.onPreExecute(); progressDialog= new ProgressDialog(RetroClient.this); progressDialog.setTitle("VERİ"); progressDialog.setMessage("Lütfen bekleyiniz.."); progressDialog.setIndeterminate(false); progressDialog.show(); } @Override protected Void doInBackground(Void... voids) { try { URL url = new URL("https://sbu2.saglik.gov.tr/QR/QR.aspx?kno=1008585476"); Document doc = Jsoup.parse(url, 3000); Element table = doc.select("table").get(0); //select the first table. Elements rows = table.select("tr"); for (int i = 1; i < rows.size(); i++) { //first row is the col names so skip it. Element row = rows.get(i); Elements cols = row.select("td"); if (cols.get(7).text().equals("SİCİL NO")) { adapter.add(cols.get(7).text()); } } } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Void aVoid) { super.onPostExecute(aVoid); lv.setAdapter(adapter); progressDialog.dismiss(); } }}