【发布时间】:2015-06-10 22:18:34
【问题描述】:
我有一个生成 PDF 文档的视图。它在浏览器(桌面)上运行良好,但我的最终目标是通过 android 应用程序提供它。
现在我正在使用改造库来处理我的请求/响应(仅 json)。
我的问题是我需要传递 Callback<> 以处理/接收 PDF 数据然后将其保存到磁盘的数据类型?
【问题讨论】:
-
Retrofit 是为与 Web 服务通信而设计的。如果您的 URL 只是一个文档(例如 PDF),我会使用其他东西来下载它(例如 OkHttp、
HttpURLConnection)。 -
CommonsWear 是对的,但是您可以尝试通过编写自定义转换器来调整它,该转换器将返回
TypedByteArray看到这个,稍加修改就可以实现它:stackoverflow.com/questions/28165438/… -
@NikolaDespotoski 好的,这几乎就是我想要的。我认为我不需要将其解析为 TypedByteArray,但我会进行测试。另一个问题是如何将其设置为自定义转换器?我知道有一个名为 setConverter 的方法,它接受转换器的实例,但是您链接的代码没有显示空构造函数。那么我该如何设置呢?
-
@vyscond 你用
setConverter()方法在RestAdapter.Builder中设置它。 -
@NikolaDespotoski 是的,但是从 GsonConvert 扩展使我的自定义转换器类不接收空构造函数。所以需要传递一个(至少)一个 Gson 对象。我像这样传递
RestAdapter.Build.setConverter(new MyConverter(new Gson()))...但是当我发送请求时服务器没有接收到。