当前位置: 首页 > 知识库问答 >
问题:

Android-下载带有改造2.0的文件

裴俊能
2023-03-14

我正在使用Reformation 2.0下载文件。问题是未调用<code>使

这是我的界面:

public interface ApiService {

    @GET("uploads/{file_name}")
    Call<ServerResponse> downloadFile(@Path("file_name") String fileName);
}

这是我的下载代码:

private void downloadFile() {
        progressDialog.show();

        // Map is used to multipart the file using okhttp3.RequestBody
        File file = new File(mediaPath);

        // Parsing any Media type file
        RequestBody requestBody = RequestBody.create(MediaType.parse("*/*"), file);
        ApiService getResponse = ApiClient.getClient().create(ApiService.class);
        Call<ServerResponse> call = getResponse.downloadFile(file.getName());
        call.enqueue(new Callback<ServerResponse>() {
            @Override
            public void onResponse(Call<ServerResponse> call, Response<ServerResponse> response) {
                ServerResponse serverResponse = response.body();
                if (serverResponse != null) {
                    if (serverResponse.getSuccess()) {
                        Toast.makeText(getApplicationContext(), serverResponse.getMessage(),Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(getApplicationContext(), serverResponse.getMessage(),Toast.LENGTH_SHORT).show();
                    }
                } else {
                    assert serverResponse != null;
                    Log.v("Response", serverResponse.toString());
                }
                progressDialog.dismiss();
            }

            @Override
            public void onFailure(Call<ServerResponse> call, Throwable t) {

            }
        });
    }

共有2个答案

曾高杰
2023-03-14
@POST("uploads/{file_name}")
    Observable<Document> getDocumentsList(@Path("file_name") String fileName);

代码webservice调用应该是

 Observable<Document> listObservable = mApiService.getDocumentsList(path);
    subscribe(listObservable, new Consumer<Document>() {
        @Override
        public void accept(Document resourceDtos) throws Exception {
            fillDocs(resourceDtos.getData());
        }
    }, new Consumer<Throwable>() {
        @Override
        public void accept(Throwable throwable) throws Exception {
            fillDocs(throwable.getMessage());
        }
    });
商迪
2023-03-14

可能,您指的是方法“enqueue()”被调用,但它不是onResponse方法。

请等待一段时间(一分钟就可以了),并确保调用了onACK或onFailure。

如果您想要更多信息,您可以使用HTTP日志拦截器

 类似资料:
  • 我正在尝试使用改造从服务器下载文件。使用HttpLoggingInterceptor我尝试记录正在发生的事情。我可以找到文件名。但是响应正文是空的。 我是使用改造的新手。有人能指出我犯错的正确方向吗? 改进客户端界面: } Java呼叫: 日志中的响应:

  • 我有一个证书文件“cert. p12”和这个证书的密码“yxc123yxc”。有了这个,我可以对网站进行身份验证,下载一个xml文件。 我如何在php中做到这一点?尝试过这样做,但“$响应”是错误的。

  • 我试图用progressbar修改Koush的下载示例中的代码,使其写入FileOutputStream而不是File,但eclipse给出了以下错误: ResponseFuture类型未定义方法progressHandler(new ProgressCallback(){}) 代码如下:

  • 我看到的主题,如如何下载文件在Android使用改造库?,他们使用和RxJava/回调。 我有Kotlin、协同程序、改装2.6.0和类似于中的查询https://stackoverflow.com/a/56473934/2914140: 我有一个改装客户: 如果令牌参数正确,查询将返回PDF文件: 如果是错误的,它将返回带有错误描述的JSON: 因此,ExportResponse是一个包含JSO

  • 以前版本的改造使用RestaAdapter,并提供了启用日志的功能。为什么在改型2.0中删除了该功能? 要启用日志,我必须。。 这是唯一的解决办法吗?以前的规定非常方便...

  • 我在从AWS下载上面的文件时遇到了一些麻烦。我试图用CouldBerry Explore和Java下载这个文件,但失败了。aws文档说我需要特殊的处理。(https://docs.aws.amazon.com/amazons3/latest/dev/usingmetadata.html)那么,你能告诉我如何用“:”下载这个文件吗? 以下是我的文件信息。 文件名:“E:\home\temp\test