问题标签 [retrofit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
977 浏览

android - 如何在 Android 上使用 Retrofit 通知每个失败的 Httprequest 的单个侦听器

我使用Retrofit将我的应用程序连接到 web 后端。我们使用异步回调方法在应用程序的不同点执行请求。

我将如何添加一个在每次 http 请求失败时通知的侦听器。

我目前的想法是创建一个自定义回调类,我的应用程序中的所有回调都必须扩展。此回调将在每次失败时通知我的听众。

如果我将所有接口更改为仅此类的子类型除外,并将失败和成功方法设为最终方法 - 使用对抽象方法的回调 - 应该不可能错过整个应用程序中的调用。

有没有更简单的方法呢?

0 投票
3 回答
12854 浏览

android - 使用 Retrofit 1.8.0 的多部分请求不起作用

我有 4 天的时间,尝试在 android 中使用 Retrofit 1.8.0 进行多部分请求并取得任何成功。我的界面看起来像这样

但是,在服务器端,我收到以下信息

如您所见,文件部分在每个部分都发送它,但是我缺少参数的 id 和 post[body] 值

这是 Retrofit 试图发送的内容

这是 HttpMime 库在 Multipart 中发送的内容,不同之处在于针对 Retrofit 的“Content-Transfer-Encoding”标头

有什么线索吗?提前致谢

- - - - - - - - - - - - - - - -解决方案 - - - - - - - - - ----------------

最后,我以这种方式解决了,实际上我的答案非常接近@lazypig,这是一个很好的指导方针

我唯一改变的是他的课程“ByteArrayTypedOutput”

我创建了一个名为“MultipartTypedOutputCustom”的类http://pastie.org/10549360

这就是我现在的界面

“PostsRetrofitAPI.java”类

“PostsService.java”类

0 投票
4 回答
9106 浏览

android - 改造 + okhttp :检索 GZIPInputStream

当我使用改造 1.4.1 和 okhttp 1.3.0 在 WS 上激活 gzip 时遇到问题。

如果我评论以下行request.addHeader("accept-encoding", "gzip");没有问题,但如果 gzip 被激活,我会收到一个错误(我的请求属于failure)。

这是我的logcatrequest.addHeader("accept-encoding", "gzip");

如何打开 gzip ?

提前谢谢

0 投票
1 回答
904 浏览

java - Android - 当模型包含一个字节 [] 时,Retrofit 被接收为 null

我正在使用 Retrofit 将一些数据发布回我的 WebAPI REST 服务。但是,如果我的模型包含 a byte[],则 WebAPI 接收到的值为 null。如果我删除该属性Signature,则模型将按预期与其余值一起接收。

此外,将Signature属性保留为 null 也可以。只有当签名有内容时,WebAPI 才会收到空值。

字节数组包含设备上捕获的 PNG 签名图像。

这是我的模型,包含byte[]属性:

我使用以下代码发送我的模型:

我的改造 DataService 方法如下所示:

我将其发送到以下休息方法:

0 投票
2 回答
2848 浏览

android - 尝试使用 Retrofit 在没有正文的情况下 POST 失败并出现 GSON 解析异常

我正在与 REST API 集成,所以我正在使用 Retrofit。我需要点击的网址是:

http://{{server}}/api/v1/stuff/{{id}}/deactivate

我创建了一个实现 API 的接口:

问题是当我调用它失败的方法时,出现以下堆栈跟踪:

我相信这是由于我没有在体内张贴任何东西造成的。解决此问题的最佳方法是什么?

注意:我已经成功使用 POSTMan 调用 API。

0 投票
1 回答
1189 浏览

java - 我可以在改造方法声明中使用可变参数吗?

我有一个 API 端点,定义为:

GET https://api-server.com/something/{id_or_ids}

whereids可以是单个对象 id逗号分隔的 id 列表
例如
https://api-server.com/something/abcd1234
https://api-server.com/something/abcd1234,abcd4567,gdht64332

如果给定了一个 id(并且找到了匹配的对象),我将返回一个json 对象
{ "blah" : "blah" }

如果给出了多个 id ,我会在json 数组中得到响应:
[{"blah1":"bleh"}, {"blah2":"meh"}, {"blah3":"blah"}]

我目前正在考虑我应该将其实现为两种方法(可以一次性完成吗?):

一个接受单个 id 并返回单个对象的方法

一个接受多个 id 并返回一个对象数组

有没有办法提供第二种方法可变参数并将它们连接到 id 字段中?

谢谢

0 投票
1 回答
332 浏览

java - 将 Retrofit 与 Flex 移动应用程序一起使用

我正在开发一个带有原生扩展的 Android 版 Flex Mobile 应用程序。我正在尝试在 Java 代码中使用 Retrofit,但 Retrofit 调用失败。

我定义了以下接口:

然后我AsyncTask从我的 Java 代码中的适当位置调用了一个。它的doInBackground方法是这样的:

从这一切来看,我期待看到在 LogCat 中打印的列表;相反,我得到以下异常:

有没有办法使用 Flex Mobile 使 Retrofit 在本机扩展中工作?

0 投票
1 回答
14199 浏览

android - 主线程上的改造回调

用这样的电话:

回调应该在主线程上执行(如果不使用 RxJava)。我的问题是:

  1. 解析发生在哪里(假设我使用 XML 转换器进行流程响应)。这是主线程,还是其他线程?它是否取决于转换器的实现?
  2. 如果我必须包含一些(重)验证规则/业务规则,我是否需要在 callable 中生成一个新线程?或者在回调方法中完成它是否可以?

我正在寻找从 Web 服务获取活动数据的方法,避免我自己进行线程管理(或使用 IntentService 等其他方法),但我也害怕使用 RxJava(因为实验支持)。是否有另一种建议的方法来处理这个问题?

0 投票
1 回答
6835 浏览

java - 使用 Retrofit 获取 JSON

我目前正在尝试使用 Retrofit 构建 Muzei 扩展,就像 Roman 在他的示例中使用的示例一样。

我无法真正理解改造,但这就是我所拥有的

ArtSource.java

ArtService.java

基本上,我试图从http://elliothesp.co.uk/muzei.php获取 JSON并将每个项目传递给 publishArtwork。它运行异常,因为它无法从 JSON 提要中找到任何照片,我不知道如何让它工作

0 投票
7 回答
70331 浏览

android - 对重新创建的活动实施改造回调的最佳实践?

我正在切换到 Retrofit 并尝试了解将其与异步回调一起使用的适当架构。

例如我有一个界面:

我从主要活动中运行它:

然后用户旋转设备,我有新创建的活动......这里发生了什么?我怎样才能得到对新活动的响应(我假设后台的 api 调用将比第一个活动的生命周期长)。也许我必须使用回调的静态实例或什么?请告诉我正确的方法...