如何使用Retrofit从Github列出文件?

时间:2017-12-12 08:27:30

标签: android retrofit retrofit2 github-api android-networking

我想创建一个只包含PDF文件的Github存储库。对于获取PDF文件,我将以此链接中描述的方式使用改造:

https://futurestud.io/tutorials/retrofit-2-how-to-download-files-from-server

所以现在我只想在Github上列出我的一个Android项目中的所有文件。 (现在它只包含一个PDF文件)

这是实施:

网络模块:

@Streaming
@GET(".")
Call<List<okhttp3.ResponseBody>> getFiles();

改造服务:

Call<List<okhttp3.ResponseBody>> call = retrofitService.getFiles();
    call.enqueue(new Callback<List<okhttp3.ResponseBody>>() {
        @Override
        public void onResponse(@NonNull Call<List<okhttp3.ResponseBody>> call, @NonNull Response<List<okhttp3.ResponseBody>> response) {
            if (response.body() != null) {
                Toast.makeText(HomeScreenActivity.this, response.message(), Toast.LENGTH_SHORT).show();
            }
        }

        @Override
        public void onFailure(@NonNull Call<List<okhttp3.ResponseBody>> call, @NonNull Throwable t) {
            Toast.makeText(HomeScreenActivity.this, t.getMessage(), Toast.LENGTH_SHORT).show();
        }
    });

在我的活动中,我试图获取文件:

@Streaming
@GET(".")
Call<okhttp3.ResponseBody> getFiles();

当我运行它时,我得到&#34;预期BEGIN_ARRAY但是STRING在第7行第1列路径$&#34; onFailure()方法中的错误。

之后我尝试了这种方式(没有List):

        Call<okhttp3.ResponseBody> call = retrofitService.getFiles();
    call.enqueue(new Callback<okhttp3.ResponseBody>() {
        @Override
        public void onResponse(@NonNull Call<okhttp3.ResponseBody> call, @NonNull Response<okhttp3.ResponseBody> response) {
            if (response.body() != null) {
                Toast.makeText(HomeScreenActivity.this, response.message(), Toast.LENGTH_SHORT).show();
            }
        }

        @Override
        public void onFailure(@NonNull Call<okhttp3.ResponseBody> call, @NonNull Throwable t) {
            Toast.makeText(HomeScreenActivity.this, t.getMessage(), Toast.LENGTH_SHORT).show();
        }
    });
}

在活动中:

Response{
protocol=http/1.1,
code=200,
message=OK,
url=https: //github.com/username/repository/
}

调用onResponse并且响应就是这样:

{{1}}

这种获取PDF文件的方式是否可行?如果是的话,你能告诉我实施的内容是否正确吗?

0 个答案:

没有答案