(我是初学者),我正在尝试使用Amplify从我的Android应用程序执行AppSync查询。我正在按照此页面中的步骤进行操作-https://aws-amplify.github.io/docs/android/api#run-a-query执行以下代码后,
public void query(){
mAWSAppSyncClient.query(ListTodosQuery.builder().build())
.responseFetcher(AppSyncResponseFetchers.CACHE_AND_NETWORK)
.enqueue(todosCallback);
}
GraphQL回调响应应该类似于:
{
"data": {
"listTodos": {
"items": [
{
"id" : ...
}]}}}
但是我一直收到以下答复:
com.apollographql.apollo.api.Response@df0e853
它没有任何其他数据。为什么会这样呢?为什么响应采用这种格式?
(我尝试在AppSync控制台中运行listTodos查询,并在那里获得正确的响应,其中包含DynamoDB中的数据和所有项目)
答案 0 :(得分:1)
com.apollographql.apollo.api.Response@df0e853
是响应对象的实例。您应该可以访问response.data()
:
private GraphQLCall.Callback<ListTodosQuery.Data> todosCallback = new GraphQLCall.Callback<ListTodosQuery.Data>() {
@Override
public void onResponse(@Nonnull Response<ListTodosQuery.Data> response) {
Log.i("Results", response.data().listTodos().items().toString());
// do something with response.data() here
}
// ...
};
```