У меня есть страница, которая повторяет для меня какой-то json с php:

http://exception-piano.gigfa.com/json.php

Я хочу расшифровать это в Android Studio, мое приложение работает для других страниц json, но когда я использую эту конкретную страницу, я получаю эту ошибку:

Для работы этого сайта требуется Javascript, пожалуйста, включите Javascript в своем браузере или используйте браузер с поддержкой Javascript.

Это мой код кодирования json:

<?php 

$servername = "xxx";
$username = "yyy";
$password = "zzz";
$dbname = "gigfa_18832988_tamrin";

    $con = mysqli_connect($servername,$username,$password,$dbname);      
    $sql = "SELECT * FROM t;";

    $result = mysqli_query($con,$sql);

    $response=array();
    while($row=mysqli_fetch_array($result))
    {
        array_push($response,array("Week"=>$row[0],"Exercise"=>$row[1]));
    }

    echo json_encode(array("server_response"=>$response));        
    mysqli_close($con);        
    ?>

И это мой код для Android:

public class MainActivity extends AppCompatActivity {

    String name;
    String id;
    String word;

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

    public  void get (View view){
        DownloadTask task = new DownloadTask();
        task.execute("http://exception-piano.gigfa.com/json.php");
    }

    public class DownloadTask extends AsyncTask<String, Void, String> {
        TextView TEXTVIEW = (TextView) findViewById(R.id.textView);
        TextView TEXTVIEW2 = (TextView) findViewById(R.id.textView2);
        //TextView TEXTVIEW3 = (TextView) findViewById(R.id.textView3);
        //ListView LISTVIEW = (ListView) findViewById(R.id.listView);

        @Override
        protected String doInBackground(String... urls) {

            String result = "";
            URL url;
            HttpURLConnection urlConnection = null;

            try {
                url = new URL(urls[0]);    
                urlConnection = (HttpURLConnection) url.openConnection();

                InputStream in = urlConnection.getInputStream();    
                InputStreamReader reader = new InputStreamReader(in);

                int data = reader.read();

                while (data != -1) {    
                    char current = (char) data;    
                    result += current;    
                    data = reader.read();    
                }

                return result;

            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

            return null;
        }

        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);

            try {   
                JSONObject note = new JSONObject(result);
                String noteString = note.getString("server_response");
                JSONArray arr = new JSONArray(noteString);

                //for loop for puting on jsonObject

                for (int i = 0; i < arr.length(); i++) {

                    JSONObject jsonPart = arr.getJSONObject(i);

                    //Put on variables
                    Week = jsonPart.getString("Week");
                    Exercise = jsonPart.getString("Exercise");   

                    //Print on TextView
                    TEXTVIEW.setText("Week : " + Week);
                    TEXTVIEW2.setText("Exercise : " + Exercise);    
                }   

            } catch (JSONException e) {
                e.printStackTrace();
            }    
        }
    }
}
0
Danial Barazandeh 6 Сен 2016 в 20:02

3 ответа

Лучший ответ

Хорошо, я обнаружил, что проблема в моем хосте. это был бесплатный хост, и, очевидно, они не разрешили это в своей политике. Я сменил хозяина, и все было в порядке.

0
Danial Barazandeh 20 Апр 2019 в 16:10

Попробуй это

JSONObject note = new JSONObject(result);
JSONArray arr = note.getJSONArray("server_response");
0
vikash kumar tiwari 6 Сен 2016 в 17:53

Вероятно, это может быть характерно, попробуйте очистить его перед выводом json на сервер:

ob_clean();
retur/echo....json
0
bdev 6 Сен 2016 в 17:15