Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我会得到;org.json.JSONException:输入结束,字符0为“0”;虽然字符串不是';你没有空吗?_Java_Android_Json_Retrofit - Fatal编程技术网

Java 为什么我会得到;org.json.JSONException:输入结束,字符0为“0”;虽然字符串不是';你没有空吗?

Java 为什么我会得到;org.json.JSONException:输入结束,字符0为“0”;虽然字符串不是';你没有空吗?,java,android,json,retrofit,Java,Android,Json,Retrofit,我得到了服务器的响应,当我记录响应主体时,我得到了正确的access_令牌,但当我尝试将其转换为jsonObject时,它表示字符串为空 apiInterface.Login(Email,Pass).enqueue(new Callback<ResponseBody>() { @Override public void onResponse(Call<ResponseBody> call, Response<ResponseBo

我得到了服务器的响应,当我记录响应主体时,我得到了正确的access_令牌,但当我尝试将其转换为jsonObject时,它表示字符串为空

   apiInterface.Login(Email,Pass).enqueue(new Callback<ResponseBody>() {
        @Override
        public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
            if(response.isSuccessful()){

                try {
                    Log.d("PONSEMONSE",response.body().string());
                    JSONObject jsonObject = new JSONObject(response.body().string());
                    Log.d("LONO",jsonObject.getString("access_token"));
                } catch (IOException | JSONException e) {
                    e.printStackTrace();
                }
                
              /*  Intent intent = new Intent(LoginActivity.this,MainActivity.class);
                startActivity(intent);*/

            }
        }
错误:

04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err: org.json.JSONException: 
End of input at character 0 of 
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at 
org.json.JSONTokener.syntaxError(JSONTokener.java:449)
  04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at 
org.json.JSONTokener.nextValue(JSONTokener.java:97)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at 
org.json.JSONObject.<init>(JSONObject.java:156)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at 
org.json.JSONObject.<init>(JSONObject.java:173)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at 
com.example.lambdaroom.LoginActivity$2.onResponse(LoginActivity.java:90)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at    
retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.
run(ExecutorCallAdapterFactory.java:68)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at 
android.os.Handler.handleCallback(Handler.java:739)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at 
android.os.Handler.dispatchMessage(Handler.java:95)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at 
android.os.Looper.loop(Looper.java:148)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at 
android.app.ActivityThread.main(ActivityThread.java:7223)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at 
java.lang.reflect.Method.invoke(Native Method)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:org.json.JSONException:
在的字符0处输入结束
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:at
syntaxError(JSONTokener.java:449)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:at
org.json.JSONTokener.nextValue(JSONTokener.java:97)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:at
json.JSONObject.(JSONObject.java:156)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:at
json.JSONObject.(JSONObject.java:173)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:at
com.example.lambdaroom.LoginActivity$2.onResponse(LoginActivity.java:90)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:at
改装2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1。
运行(ExecutorCallAdapterFactory.java:68)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:at
handleCallback(Handler.java:739)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:at
android.os.Handler.dispatchMessage(Handler.java:95)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:at
Looper.loop(Looper.java:148)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:at
main(ActivityThread.java:7223)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:at
java.lang.reflect.Method.invoke(本机方法)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

看起来像是reponse.body.string()只能调用一次,否则它是空的://

看起来像是reponse.body.string()只能调用一次,否则它是空的://

您没有包含import语句,所以我们不能100%确定。但是,看起来您正在使用的
ResponseBody
实际上是
okhttp.okhttp3.ResponseBody
。如果是,okhttp文档说明:

  • 身体只能被消耗一次,并且
  • 使用主体的
    string()
    方法
这种行为背后的原因是,这意味着
ResponseBody
不会被强制将整个响应缓冲在某个地方(例如内存中),以备需要。考虑到反应可能非常大,这通常是一件好事

参考:


您尚未包含导入声明,因此我们无法100%确定。但是,看起来您正在使用的
ResponseBody
实际上是
okhttp.okhttp3.ResponseBody
。如果是,okhttp文档说明:

  • 身体只能被消耗一次,并且
  • 使用主体的
    string()
    方法
这种行为背后的原因是,这意味着
ResponseBody
不会被强制将整个响应缓冲在某个地方(例如内存中),以备需要。考虑到反应可能非常大,这通常是一件好事

参考:


是的,没错,我已经回答了自己的问题,几乎就在我发布问题时,我意识到了这一点。我回答的目的是为其他和你有同样问题的人提供更多信息。StackOverflow的真正目标不是解决>您的<编程问题。这是为了建立一个资源来帮助解决每个人的编程问题。是的,没错,我已经回答了自己,几乎就在我发布问题时,我意识到了这一点。我回答的目的是为其他和你有同样问题的人提供更多信息。StackOverflow的真正目标不是解决>您的<编程问题。它是建立一个资源来帮助解决每个人的编程问题。
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err: org.json.JSONException: 
End of input at character 0 of 
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at 
org.json.JSONTokener.syntaxError(JSONTokener.java:449)
  04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at 
org.json.JSONTokener.nextValue(JSONTokener.java:97)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at 
org.json.JSONObject.<init>(JSONObject.java:156)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at 
org.json.JSONObject.<init>(JSONObject.java:173)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at 
com.example.lambdaroom.LoginActivity$2.onResponse(LoginActivity.java:90)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at    
retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.
run(ExecutorCallAdapterFactory.java:68)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at 
android.os.Handler.handleCallback(Handler.java:739)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at 
android.os.Handler.dispatchMessage(Handler.java:95)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at 
android.os.Looper.loop(Looper.java:148)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at 
android.app.ActivityThread.main(ActivityThread.java:7223)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at 
java.lang.reflect.Method.invoke(Native Method)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
04-15 14:25:55.029 14235-14235/com.example.lambdaroom W/System.err:     at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)