Java 为什么我会得到;org.json.JSONException:输入结束,字符0为“0”;虽然字符串不是';你没有空吗?
我得到了服务器的响应,当我记录响应主体时,我得到了正确的access_令牌,但当我尝试将其转换为jsonObject时,它表示字符串为空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
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
不会被强制将整个响应缓冲在某个地方(例如内存中),以备需要。考虑到反应可能非常大,这通常是一件好事
参考:
ResponseBody
实际上是okhttp.okhttp3.ResponseBody
。如果是,okhttp文档说明:
- 身体只能被消耗一次,并且
- 使用主体的
方法string()
ResponseBody
不会被强制将整个响应缓冲在某个地方(例如内存中),以备需要。考虑到反应可能非常大,这通常是一件好事
参考:
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)