-1

JSON オブジェクトを取得するために「GET」リクエストを行います。応答を読み取ろうとすると、エラーがスローされます。エラーはヘッダーに記述されています。エミュレーターまたはブラウザーでアプリを実行すると、JSON 応答が返され、すべて問題ないので、これは私にとって本当に奇跡です。しかし、実際の電話で実行すると、このエラーが表示されます....どんな回答にも感謝します。これが私のコードです。

class Task extends AsyncTask<String, Void, String> {
StringBuilder builder;

@Override
protected String doInBackground(String... params) {
    HttpURLConnection connection;
    try {
        URL url = new URL(params[0]);
        connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("GET");
        connection.connect();

        BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        builder = new StringBuilder();
        String line;
        while ((line = reader.readLine()) != null) {
            builder.append(line);
        }
    } catch (IOException e) {
        e.printStackTrace();
        Log.e("log", "background error " + e);
    }
    return builder.toString();
}

@Override
protected void onPostExecute(String s) {

    Log.e("log", "response " + s);

    try {
        JSONObject jsonObject = new JSONObject(s);
        Log.e("log", "JSON = " + jsonObject);
    } catch (JSONException e) {
        e.printStackTrace();
        Log.e("log", "post error " + e);
    }

}

}

これは、実行後に取得する文字列です

<html>                            <body>                                
<script type='text/javascript' charset='utf-8'>                                    
window.location.href = '/';                                </script>                            
</body>                        </html>                        

そして、ここに私が得るエラーがあります

05-04 08:56:19.989 2731-2731/? W/System.err: org.json.JSONException: Value 
<html> of type java.lang.String cannot be converted to JSONObject
05-04 08:56:19.989 2731-2731/? W/System.err:     at 
org.json.JSON.typeMismatch(JSON.java:111)
05-04 08:56:19.989 2731-2731/? W/System.err:     at org.json.JSONObject.
<init>(JSONObject.java:158)
05-04 08:56:19.989 2731-2731/? W/System.err:     at org.json.JSONObject.
<init>(JSONObject.java:171)
05-04 08:56:19.989 2731-2731/? W/System.err:     at 
com.example.dshahzadyan.gettest.Task.onPostExecute(MainActivity.java:64)
05-04 08:56:19.999 2731-2731/? W/System.err:     at 
com.example.dshahzadyan.gettest.Task.onPostExecute(MainActivity.java:33)
05-04 08:56:19.999 2731-2731/? W/System.err:     at 
android.os.AsyncTask.finish(AsyncTask.java:602)
05-04 08:56:19.999 2731-2731/? W/System.err:     at 
android.os.AsyncTask.access$600(AsyncTask.java:156)
05-04 08:56:19.999 2731-2731/? W/System.err:     at 
android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:615)
05-04 08:56:19.999 2731-2731/? W/System.err:     at 
android.os.Handler.dispatchMessage(Handler.java:99)
05-04 08:56:19.999 2731-2731/? W/System.err:     at 
android.os.Looper.loop(Looper.java:137)
05-04 08:56:19.999 2731-2731/? W/System.err:     at 
android.app.ActivityThread.main(ActivityThread.java:4517)
05-04 08:56:19.999 2731-2731/? W/System.err:     at 
java.lang.reflect.Method.invokeNative(Native Method)
05-04 08:56:19.999 2731-2731/? W/System.err:     at 
java.lang.reflect.Method.invoke(Method.java:511)
05-04 08:56:19.999 2731-2731/? W/System.err:     at 
4

1 に答える 1