Mysql
 sql >> Baza danych >  >> RDS >> Mysql

ANDROID&PHP - Jak wyświetlić JSONArray z MySql za pomocą PHP

Problem

HttpURLConnection nie obsługuje JavaScript, ale potrzebny plik cookie jest generowany za pomocą JavaScript.

Twój telefon

String reqUrl = "http://zxccvvv.cuccfree.com/send_data.php";
URL url = new URL(reqUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();

nie powiedzie się, ponieważ plik cookie __test brakuje.

Napraw

Na pierwszy rzut oka na źródło JavaScript plik cookie wydaje się być stały dla danego adresu URL, więc może wystarczyć ustawienie stałego pliku cookie :

String cookie = "__test=2bf7c15501c0ec57f8e41cb84871a69c";

URL url = new URL(reqUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(7000);
conn.setRequestMethod("GET");
conn.setRequestProperty("Cookie", cookie);

Alternatywnie: Korzystając z WebView, możemy pobrać plik cookie, więc jest to preferowane podejście, ponieważ nie ulegnie on uszkodzeniu, jeśli plik cookie ulegnie zmianie i nie jest to duże opóźnienie:

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

    getCookie();

    if(cookie!=null) {
        new GetContacts().execute();
    }
}

private void getCookie(){
    CookieManager.setAcceptFileSchemeCookies(true);
    WebView wv = new WebView(getApplicationContext());
    wv.getSettings().setJavaScriptEnabled(true);
    wv.loadUrl(url);
    cookie = CookieManager.getInstance().getCookie("zxccvvv.cuccfree.com");
}

i ustaw jak w powyższym przykładzie:

conn.setRequestProperty("Cookie", cookie);

Wyjście w logcat

Response from url: [{"0":"1","id":"1","1":"pertanyaan ke 1","ask":"pertanyaan ke 1"},{"0":"2","id":"2","1":"pertanyaan ke 2","ask":"pertanyaan ke 2"},{"0":"3","id":"3","1":"pertanyaan ke 3","ask":"pertanyaan ke 3"},{"0":"4","id":"4","1":"pertanyaan ke 4","ask":"pertanyaan ke 4"},{"0":"5","id":"5","1":"pertanyaan ke 5","ask":"pertanyaan ke 5"}]



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę sprawdzić, czy kolumna tabeli mysql w ogóle istnieje?

  2. Nie można połączyć się z lokalnym serwerem MySQL przez gniazdo '/var/mysql/mysql.sock' (38)

  3. Błąd krytyczny:wywołanie niezdefiniowanej metody mysqli::bind_param() in

  4. Zmień zachowanie Session.delete() SQLAlchemy

  5. MySQL:czy istnieje coś takiego jak wewnętrzny identyfikator rekordu dla każdego rekordu w tabeli MySQL?