我想创建一个只包含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文件的方式是否可行?如果是的话,你能告诉我实施的内容是否正确吗?