问题标签 [retrofit2]

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 投票
3 回答
7437 浏览

android - 无法解析改造 2 中的错误

我正在使用 Retrofit 2,我在这一行得到一个空指针异常:

错误为空。更多细节:

这是 API 返回错误的格式:

这是我的登录回调代码:

这是我的改造 2 课:

我从本教程中获得了错误 utils 类,但由于示例中的错误格式不同,因此对其进行了轻微更改:

编辑:这是Converter课程:

0 投票
1 回答
1022 浏览

android - 改造 - 在字符串中获取响应错误

我正在使用改造来使用我的 REST api。

我不断400 bad request从我的服务器获取信息,但我无法将错误解析为字符串。

当我尝试从POSTMAN chrome 应用程序发布时,请求成功并且我得到201 created响应(新用户)。

这是我的依赖项:

这是我的界面:

这是我的 POST 请求:

我似乎无法解析响应,onResponse所以我无法理解错误是什么。

它在文档上说 - http://inthecheesefactory.com/blog/retrofit-2.0/en如果我得到错误,onResponse将被调用,我可以在 中看到错误字符串response.errorBody().string(),但它是一个空字符串。

有任何想法吗??

0 投票
1 回答
153 浏览

php - 尝试使用 Retrofit2 下载照片时出现错误的响应正文

我正在使用 Retrofit 2.0.0-beta2,我需要从我的 PHP 服务器下载一些文件。我的第一种方法是直接使用其相对服务器路径中的 GET 方法,我得到了正确的字节。

现在我尝试了一些更安全的方法,可以根据一些检查将文件传递给我。它会自动从数据库中获取文件路径并检查用户会话是否正确。这适用于浏览器测试,Chrome PC 和 Android 的 Chrome 都正确下载了一些照片。

我正在使用 X-Sendfile 标头提供文件,如下所示:

Android 端调用如下所示:

打开文件时我得到的只是来自服务器的回显文本响应。有什么办法可以接收“正确”的文件?

0 投票
1 回答
937 浏览

android - 改造:2.0.0-beta2,JacksonConverter 与 Joda DateTime

我正在尝试将 Retrofit2 与 Jackson 转换器和 Joda DateTime 一起使用。我拥有的代码如下:

但是没有使用 Joda 序列化器/解串器,导致

在不使用 ObjectMapper 的情况下使用 JacksonConverterFactory.create() 时获得相同的结果

如果直接使用相同的 ObjectMapper 将值写入 String,则一切都按预期工作。

任何帮助将不胜感激。

编辑: 依赖:

Edit2:我删除了 joda-time:2.3 依赖项,没有结果。

0 投票
1 回答
496 浏览

android - 将改造 1 模块升级到改造 2

我正在用改造 2 重写 robospice 改造模块。
我遇到的问题有两种方法(saveData,readCacheDataFromFile):


我如何在改造 2 中重写这些方法?改造 2 中 TypedOutput 和 TypedInput 接口的等价物是什么?

0 投票
0 回答
981 浏览

android - 改造 2 和 Gson 中作为请求主体的通用对象列表

作为我的应用程序全局重构的一部分,我第一次尝试改造 2。

我的应用程序存储从传感器读取的不同国王的数据。每个度量都有共同的特征,所以我为我需要的每种数据创建了一个父 Measure 类(它不是抽象的)和一些子类。例如,我创建了一个 TemperatureMeasure 子类。

我可以访问一个我无法更改的公共 API,以发送我在我的应用程序中收集的度量值。

使用改造(2.0 beta),我用这个方法声明了一个接口:

我的计划是能够通过提供扩展 Measure 类的对象列表来调用此方法。我使用 Gson 转换器作为序列化器。当我调用此方法时 - 例如使用 TemperatureMeasure 对象列表 - 创建的 JSON 对象仅包括 Measure 类的成员,但不包括 TemperatureMeasure 成员。

解决此问题的最佳解决方案是什么?

根据我一直在阅读的内容,一种选择是实现串行器/解串器并将其提供给 Gson 转换器。当遇到 Measure 对象时,该序列化程序会自动尝试序列化正确的子类。另一种选择是自己使用 Gson 处理序列化,并将原始 JSON 数据作为字符串提供给改造调用,但这会破坏使用改造的好处。我发现的最后一个选项是在我的改造界面中为每种度量创建一个请求。

是否有更好的通用友好选项可以阻止我在某处编写巨大的 switch 语句?

谢谢

0 投票
1 回答
1578 浏览

android - 在 Retrofit Expected BEGIN_ARRAY 上通过 POST 发送 ArrayList 时出错,但在第 1 行第 1 列是 STRING

当我尝试在 Retrofit 2 上使用 @POST 将 ArrayList<> 发送到我的网络服务器时,ArrayList<> 保存在数据库中,但在 Android 日志中我收到以下错误:

java.lang.IllegalStateException:应为 BEGIN_ARRAY,但在第 1 行第 1 列路径 $

我在这里看到了一些关于 SO 的问题,但我无法让它发挥作用,但是我是一个初学者,有点迷路了。

这是数组列表:

这是我的改造电话

这是我的界面:

我发出请求时的服务器响应:

模型接触类:

0 投票
1 回答
2939 浏览

android - 使用 Retrofit 2 上传图片

我正在尝试使用 Retrofit 2.0 转换一些用于在 Android 设备上上传图像的 iOS 代码。我在这方面的尝试失败了,我不知道为什么。服务器似乎没有得到图片。

这是工作的iOS代码:

这是失败的Android代码:

请求成功返回,但服务器似乎没有获取图像。

0 投票
1 回答
338 浏览

android - 如何使用具有通用基类的 GSON 反序列化 JSON

我有一个看起来像这样的 json

我正在使用带有 GSON 转换器的 Retrofit 2。2 个参数 responseCoderesponseMessage出现在每个 JSON 中。区分参数是“用户”

所以我创建了一个类

然后 POJOS 的其余部分扩展如下:

问题是,GSON 不会反序列化“用户”部分。我想我必须写一个反序列化器

问题是,GSON 向我返回了用户对象元素全部为空的用户对象。

我有点在修复中。无论如何这是可能的吗?要么我通过做JsonObject jo = json.getAsJsonObject().getAsJsonObject("user");或父母得到子类的东西。任何帮助,将不胜感激。

0 投票
1 回答
335 浏览

android - 带有Android Retrofit 2.X的Rails回形针宝石不起作用

我正在创建 rails 后端以使用回形针 gem 从浏览器和移动客户端(Android)上传图像。它适用于所有 Web 浏览器、移动浏览器以及 HTTP REST 客户端工具,但不适用于带有改造 http 库的 android 客户端。这是否相互兼容