草庐IT

Retrofit2

全部标签

android - Retrofit 2 - 使用相同请求的内容管理 http "204 No content"和 "200"

我正在使用Retrofit2和OkHttp3,以及RxJava2我正在调用带有一些参数的服务器。根据参数,服务器返回一个包含对象列表的JSON。但是,如果没有任何内容可返回,则服务器不会返回带有空列表的JSON,而是返回“204-无内容”。结果我得到一个NullPointerException。我知道如何管理JSON响应,我知道如何管理204响应,但不知道如何管理同一个调用。我可以使用拦截器,但由于我有很多调用,我的Retrofit客户端只创建一次,然后在必要时使用Dagger2注入(inject)。我该如何处理这个案例? 最佳答案

android - 改造 2.0 多部分

我有工作OkHttpMultiPartrequest:multi=newMultipartBody.Builder().setType(MultipartBody.FORM).addFormDataPart("email",m).addFormDataPart("password",p).addFormDataPart("user_name",n).addFormDataPart("user_phone",phone).addFormDataPart("photo","avatar.jpg",RequestBody.create(MediaType.parse("image/jpg")

android - Retrofit 2、GSON 和自定义解串器

我使用Retrofit2和一些POJO对象已有一段时间了。这是一个可爱的库并且运行良好,但它需要一些我想摆脱的可怕和困惑的模型。我将向您展示...我有以下JSON可供细读:{"things":[{"thing":{"id":823,"created_at":"2016-02-09T22:55:07.153Z","published_at":"2016-02-10T19:23:42.666Z","downloads":16073,"size":10716291}},],"count":4,"links":{}}使用POJOSchema生成器会创建不必要的类,使维护代码变得困难。这将创建:

java - 如何配置 Square 的 Retrofit Client 来处理参数数量可变的请求

我正在构建一个Android应用程序,并使用Square的Retrofit库进行短暂的网络调用。我对Java和Android比较陌生。到目前为止,我已经构建了这样的请求:@GET("/library.php")voidlibrary(@Query("one_thing")StringoneThing,@Query("another_thing")StringanotherThing,Callback>callback);然后这样称呼他们:service.library(oneThing,anotherThing,callback);我需要实现一个接受可变数量参数的请求,不超过10个左右

android - 使用 Retrofit 访问带有 key/id 的 API

我还没有真正找到关于此的明确文档,但我想知道是否有人可以指出我使用Retrofit(或OKHTTP或其他更合适的东西)以便从API中提取JSON流需要APIID和APIkey(例如从终端访问数据:curl-v-H"app_id:appid"-H"app_key:appkey"-XGET"http://data.leafly.com/strains/blue-dream")。我查看了Square网站上的官方文档,但如果还有其他任何东西可以帮助我提取该数据,那就太棒了。谢谢!最终答案RestAdapter.Builderbuilder=newRestAdapter.Builder().se

android - 将模拟 Retrofit API 服务实例注入(inject) ActivityInstrumentTestCase2

我想使用Espresso为Activity编写功能测试,使用通过MockRestAdapter(https://github.com/square/retrofit/blob/master/retrofit-mock/src/main/java/retrofit/MockRestAdapter.java)创建的模拟RetrofitAPI服务实例。但这有点棘手,因为您无法真正通过Activity的构造函数注入(inject)任何依赖项。目前,单个RetrofitAPI服务实例存在于我的Application对象中,我在我的每个Activity的onCreate()方法中创建了一个对它的引

android - 在网络调用之前改造 2 加载缓存

我正在使用改造2进行API调用,但我的问题是API响应需要时间来显示响应,我是否有机会存储数据并加载缓存并显示它,然后同时调用网络应用程序接口(interface)。例如:第一次点击->进行网络调用-将输出呈现到屏幕,比如ListView->将响应存储在缓存中下次用户出现在屏幕上时-->加载缓存并将其呈现到屏幕上-->进行网络调用-->使用更改刷新适配器我指的是要点链接之一https://gist.github.com/Tetr4/d10c5df0ad9218f967e0 最佳答案 是的,有很多解决方案。如果您使用RxJava(与r

android - @Part in multipart 发送双引号中的字符串参数

在API之后,我调用了EditingUserProfile。我必须发送用户个人资料图片,所以我在API中使用了multipart。@Multipart@POST(ApiURLs.EDIT_USER_PROFILE)CallEditUserProfile(@Part("user_id)StringuserId,@Part("user_name")StringuserName,@Part("language_id")StringlanguageId,@Part("state_id")StringstateId,@PartMultipartBody.PartprofilePicture);当

android - 如何管理并行和串行 Retrofit API 调用

我在同一Activity中有4个API调用。其中3个相互独立。我想在前三个完成后调用4,但我不确定每次都执行前3个。我从数据库中获取数据然后它会调用。它可能是1个API调用或前三个中的2个或3个。我试着按顺序一个接一个地打电话,但有时4号在前3号结束之前就开始了。我的一些努力如下所示:if(true){//data1isavailableindatabasefirstRetrofitCall();}else{//shownodata}if(true){//data2isavailableindatabasesecondRetrofitCall();}else{//shownodata}

android - 如何使用 Retrofit 发布 (x-www-form-urlencoded) Json 数据?

这个问题在这里已经有了答案:AndroidRetrofit:contenttypeasapplication/x-www-form-urlencoded(3个答案)关闭4年前。当我在body(x-www-form-urlencoded)中发布数据时,它在Postman中工作正常。但是使用Retrofit2.0Android它不起作用。@Headers("Content-Type:application/x-www-form-urlencoded")@POST("/api/jsonws/pushUserData")CallpushData(@BodyJSONObjectjsonObj);