sql >> データベース >  >> RDS >> Mysql

ANDROID&PHP-PHPを使用してMySqlからJSONArrayを表示する方法

    問題

    HttpURLConnection JavaScriptはサポートされていませんが、必要なCookieはJavaScriptを使用して生成されます。

    あなたの電話

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

    cookie __testが原因で、失敗します 行方不明です。

    修正

    JavaScriptソースを一見すると、Cookieは特定のURLに対して一定であるように見えるため、一定の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);
    

    代替: WebViewを使用すると、Cookieを取得できるため、Cookieが変更されても時間の遅れがあまりない場合でも、Cookieが破損しないため、これが推奨されるアプローチです。

    @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");
    }
    

    上記の例のように設定します:

    conn.setRequestProperty("Cookie", cookie);
    

    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. Java / MySQL..SQLException:テーブルには少なくとも1つの列が必要ですSQLState:42000 VendorError:1113

    2. Android RoomEmbeddedRelationはSQLwhere条件を無視します

    3. MySQL InnoDB:`FORUPDATE`と`LOCKINSHAREMODE`の違い

    4. Java 9のカスタムランタイムイメージとは何ですか?