问题标签 [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.
android - 如何在 Android 上使用 Retrofit 通知每个失败的 Httprequest 的单个侦听器
我使用Retrofit将我的应用程序连接到 web 后端。我们使用异步回调方法在应用程序的不同点执行请求。
我将如何添加一个在每次 http 请求失败时通知的侦听器。
我目前的想法是创建一个自定义回调类,我的应用程序中的所有回调都必须扩展。此回调将在每次失败时通知我的听众。
如果我将所有接口更改为仅此类的子类型除外,并将失败和成功方法设为最终方法 - 使用对抽象方法的回调 - 应该不可能错过整个应用程序中的调用。
有没有更简单的方法呢?
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”类
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 ?
提前谢谢
java - Android - 当模型包含一个字节 [] 时,Retrofit 被接收为 null
我正在使用 Retrofit 将一些数据发布回我的 WebAPI REST 服务。但是,如果我的模型包含 a byte[]
,则 WebAPI 接收到的值为 null。如果我删除该属性Signature
,则模型将按预期与其余值一起接收。
此外,将Signature
属性保留为 null 也可以。只有当签名有内容时,WebAPI 才会收到空值。
字节数组包含设备上捕获的 PNG 签名图像。
这是我的模型,包含byte[]
属性:
我使用以下代码发送我的模型:
我的改造 DataService 方法如下所示:
我将其发送到以下休息方法:
android - 尝试使用 Retrofit 在没有正文的情况下 POST 失败并出现 GSON 解析异常
我正在与 REST API 集成,所以我正在使用 Retrofit。我需要点击的网址是:
http://{{server}}/api/v1/stuff/{{id}}/deactivate
我创建了一个实现 API 的接口:
问题是当我调用它失败的方法时,出现以下堆栈跟踪:
我相信这是由于我没有在体内张贴任何东西造成的。解决此问题的最佳方法是什么?
注意:我已经成功使用 POSTMan 调用 API。
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 字段中?
谢谢
java - 将 Retrofit 与 Flex 移动应用程序一起使用
我正在开发一个带有原生扩展的 Android 版 Flex Mobile 应用程序。我正在尝试在 Java 代码中使用 Retrofit,但 Retrofit 调用失败。
我定义了以下接口:
然后我AsyncTask
从我的 Java 代码中的适当位置调用了一个。它的doInBackground
方法是这样的:
从这一切来看,我期待看到在 LogCat 中打印的列表;相反,我得到以下异常:
有没有办法使用 Flex Mobile 使 Retrofit 在本机扩展中工作?
android - 主线程上的改造回调
用这样的电话:
回调应该在主线程上执行(如果不使用 RxJava)。我的问题是:
- 解析发生在哪里(假设我使用 XML 转换器进行流程响应)。这是主线程,还是其他线程?它是否取决于转换器的实现?
- 如果我必须包含一些(重)验证规则/业务规则,我是否需要在 callable 中生成一个新线程?或者在回调方法中完成它是否可以?
我正在寻找从 Web 服务获取活动数据的方法,避免我自己进行线程管理(或使用 IntentService 等其他方法),但我也害怕使用 RxJava(因为实验支持)。是否有另一种建议的方法来处理这个问题?
java - 使用 Retrofit 获取 JSON
我目前正在尝试使用 Retrofit 构建 Muzei 扩展,就像 Roman 在他的示例中使用的示例一样。
我无法真正理解改造,但这就是我所拥有的
ArtSource.java
ArtService.java
基本上,我试图从http://elliothesp.co.uk/muzei.php获取 JSON并将每个项目传递给 publishArtwork。它运行异常,因为它无法从 JSON 提要中找到任何照片,我不知道如何让它工作
android - 对重新创建的活动实施改造回调的最佳实践?
我正在切换到 Retrofit 并尝试了解将其与异步回调一起使用的适当架构。
例如我有一个界面:
我从主要活动中运行它:
然后用户旋转设备,我有新创建的活动......这里发生了什么?我怎样才能得到对新活动的响应(我假设后台的 api 调用将比第一个活动的生命周期长)。也许我必须使用回调的静态实例或什么?请告诉我正确的方法...