我收到了这个错误:
Expected BEGIN_OBJECT but was STRING at line 1 column 1 path
在另一个stackoverflow问题中,他们说当我应该是一个对象时,我正在接收一个数组。 但我的直觉是我没有收到任何东西,但是我无法看到我的json进行调试。
我正在尝试记录收到的json,看看发生了什么,因为我的代码中没有看到错误。
我编的是here:
OkHttpClient client = new OkHttpClient();
client.interceptors().add(new Interceptor() {
@Override
public com.squareup.okhttp.Response intercept(Chain chain) throws IOException {
Request request = chain.request();
Buffer buffer = new Buffer();
request.body().writeTo(buffer);
String body = buffer.readUtf8();
Request.Builder builder = chain.request().newBuilder();
String credential = Credentials.basic(user, pass);
builder.addHeader("Authorization", credential).build();
Response response = chain.proceed(builder.build());
return response;
}
});
return client;
但是我在request.body()
...
我的下一步调试是什么???
答案 0 :(得分:0)
我会使用如下的日志语句设置改装拦截器:
Request request = chain.request();
Log.e(String.format("Request: %s", request.body().toString()));
那应该给你一个json体的错误日志。
答案 1 :(得分:0)
您正在修改您的请求,但听起来您正在尝试记录服务器响应。为此,您需要调用chain.proceed()
来获取响应,然后记录body
。{/ p>
client.interceptors().add(new Interceptor() {
@Override
public com.squareup.okhttp.Response intercept(Chain chain) throws IOException {
com.squareup.okhttp.Response response = chain.proceed(chain.request());
String content = response.body().string();
Log.d("interceptor", "intercepted res = " + content);
return response.newBuilder()
.body(ResponseBody.create(response.body().contentType(), content))
.build();
}
});