问题标签 [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 投票
4 回答
82844 浏览

java - Android Retrofit 参数化@Headers

我正在使用 OAuth,每次发出请求时都需要将 OAuth 令牌放在我的标头中。我看到了@Header注释,但是有没有办法让它参数化,以便我可以在运行时传入?

这是概念

@Header({Authorization:'OAuth {var}', api_version={var} })

你可以在运行时传递它们吗?

0 投票
1 回答
7764 浏览

java - 使用带有 Cookie 持久性的改造

伙计们,我正在使用改造,我想知道如何透明地处理会话 cookie。为此,我扩展了给定的 ApacheClient 并在对 ApacheClient.execute(HttpClient, HttpUriRequest) 的自定义调用中使用 CookieStore :

有没有更好的方法来使用内置的改造 API(没有 HttpClient 扩展)?

0 投票
1 回答
9622 浏览

android - 改造 @Body 在 HTTP 请求中显示为参数

我以前成功地使用 Square 的Retrofit@GET进行Web API 调用,但是当尝试@BODY@POST调用中发送 JSON 时,在服务器(Rails)上,JSON 显示为参数而不是正文请求。

我的理解是,@BODY会将该方法参数添加到正文中的请求中。

知道我做错了什么吗?

网络接口

发出网络请求:

0 投票
2 回答
3222 浏览

android - Robospice/ Retrofit 后台服务访问数据库

我已经成功创建了一个Retrofit API Rest 客户端,它同时进行GETPOST调用,并将其作为后台服务合并到Robospice中。

但是,我希望Robospice服务连接到数据库并异步保存从GET调用中检索到的对象。使用Retrofit Callback类似乎是显而易见的方式,但需要连接到数据库Context,我担心会泄露Context.

那么,让Robospice SpiceService在处理请求之前和之后将数据持久保存到数据库的最佳方法是什么?

0 投票
1 回答
35604 浏览

android - 使用 Retrofit 发布正文 JSON

我正在尝试使用 Retrofit 库发布 JSONObject,但是当我在接收端看到请求时,内容长度为0.

在 RestService 接口中:

它被调用,

而且我确定registrationBundleaJSONObject不是 null 或空的(其他字段当然没问题)。在发出请求的那一刻,它注销为: {"zip":19312,"useAccountZip":false,"controllerName":"mine","registrationCode":"GLD94Q"}

在请求的接收端,我看到请求有Content-type: application/json但有Content-length: 0.

像这样在正文中发送 JSON 不起作用有什么原因吗?我在使用 Retrofit 时遗漏了一些简单的东西吗?

0 投票
1 回答
3261 浏览

android - 使用 Robospice 和 Retrofit 将图像上传到 Google appengine

我正在尝试使用带有 Retrofit 的 Robospice 将图像上传到我的 Google appengine blobstore。我可以获取 GAE 提供的上传 URL,但是当我尝试将带有图像的 URL 作为 Multipart POST 发送时,出现异常:

E//RequestRunner.java:134(24689): Thread-3363 请求网络执行期间发生异常:null

E//RequestRunner.java:134(24689):retrofit.RetrofitError

E//RequestRunner.java:134(24689): 在改造.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:343)

E//RequestRunner.java:134(24689): 在改造.RestAdapter$RestHandler.invoke(RestAdapter.java:222)

E//RequestRunner.java:134(24689): at $Proxy0.uploadImage(Native Method)

E//RequestRunner.java:134(24689): 在ginger.connexus.network.UploadImage.loadDataFromNetwork(UploadImage.java:24)

E//RequestRunner.java:134(24689): 在ginger.connexus.network.UploadImage.loadDataFromNetwork(UploadImage.java:1)

E//RequestRunner.java:134(24689): 在 com.octo.android.robospice.request.CachedSpiceRequest.loadDataFromNetwork(CachedSpiceRequest.java:45)

E//RequestRunner.java:134(24689): 在 com.octo.android.robospice.request.RequestRunner.processRequest(RequestRunner.java:130)

E//RequestRunner.java:134(24689): 在 com.octo.android.robospice.request.RequestRunner$1.run(RequestRunner.java:197)

E//RequestRunner.java:134(24689): 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390)

E//RequestRunner.java:134(24689): 在 java.util.concurrent.FutureTask.run(FutureTask.java:234)

E//RequestRunner.java:134(24689): 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)

E//RequestRunner.java:134(24689): 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)

E//RequestRunner.java:134(24689): 在 java.lang.Thread.run(Thread.java:841)

D//RequestProgressManager.java:75(24689):发送进度完成

我的 API 接口

我的改造 Gson Spice 服务

我的改装香料请求课程

我的执行电话

0 投票
1 回答
3309 浏览

android - Android改造转换器异常

如果您可以从服务器获得 2 个不同的响应请求,如何格式化/设计您的课程?

注意:如果 JSON 响应格式(设计)与您的类不同,Retrofit 将引发异常。JSON 响应中的所有字段都必须存在于您的类中。

Java 类,如 JSON 响应:

JSON 响应:

这就是我请求响应的方式:

如果登录失败,public List<String> message;则将填充来自 Web 服务器的消息:

但是,如果 Web 服务器没有回复任何内容(成功登录),那么我会通过改造得到一个异常,因为public List<String> message;它是空的,Web 服务器回复了一个简单的空字符串消息而不是字符串数组。如果我更改public List<String> message;为,它会起作用public String message;,但我不能,因为如果登录失败,它必须是一个字符串数组。

0 投票
1 回答
3511 浏览

android - Android 改造会话 - cookie

我正在使用改造来反序列化来自 Web 服务器的 json 请求,我需要在我的应用程序中创建一个会话(cookie?)(它应该在 120 分钟内到期)。问题是我不知道如何实现它。

只有在应用程序正在运行时,此会话才应该持续存在。

最低 SDK 要求为 8

0 投票
1 回答
2117 浏览

android - Square 的改造客户。可变数量的参数

我正在使用 Square 的 Retrofit 库。我需要使用可变数量的参数来实现请求。我找到了建议(链接),我试试这个:

我改变

并使用以下:

第一种方法效果很好,但第二种方法不起作用。怎么了?

0 投票
2 回答
54699 浏览

android - POST 与 Android 改造

我是 Android 编程和使用 Retrofit 的新手。我已经对此主题进行了大量研究,但无法找到适合我需求的解决方案。我正在使用我们的 API 并尝试发出 POST 请求。我使用以下非改造代码成功地实现了这一点:

现在,我正在尝试使用 Retrofit 获得相同的结果,但我不确定如何使用回调从我们的 API 中获取 JSON(我假设这个调用应该异步发生?):

我用以下方法制作了一个接口:

并在我的 Activity 的 onCreate 方法中实例化了 RestAdapter 等。当用户按下“登录”按钮(输入用户名和密码后)时,在按钮的 onClick 方法中调用以下内容:

然而,这并没有按预期工作,我真的认为我没有正确处理这个问题。我希望能够向我们的服务器发送一个 POST,它会发回关于该用户的 JSON 格式数据块。如果有人能指出我正确的方向,那将不胜感激。先感谢您