【问题标题】:How to make a request get by retrofit Android如何通过改造 Android 提出请求
【发布时间】:2020-01-13 19:16:44
【问题描述】:

这是我的 Api 响应,我不知道是json object 还是json array

我需要创建一个带有改造的GET 请求,但我不知道

{
    "Customers": [
        {
            "Empresa": "CORSENESA",
            "Cliente": "1000      ",
            "Nombre": "ANDREA ARRIOLA LOPEZ                                                                                ",
            "Direccion": "7 AV. 9-64 ZONA 9\r\n\r\n",
            "telefonos": "4710-7975                                                   ",
            "DiasCredito": 0,
            "inactivo": false,
            "DiasVisita": "L,M,MI,J,V,S,D"
        },
        {
            "Empresa": "CORSENESA",
            "Cliente": "1005      ",
            "Nombre": "TANIA LOPEZ HERNANDEZ                                                                     STA. PAULA",
            "Direccion": "PASEO SAN CRISTOBAL ZONA 8 DE MIXCO",
            "telefonos": "53071090                                                    ",
            "DiasCredito": 0,
            "inactivo": false,
            "DiasVisita": "L,M,MI,J,V,S,D"
        }
     ]
}

【问题讨论】:

  • 你能再具体一点吗?
  • 它是一个 Json 对象,里面有 Json 数组。

标签: android json rest get retrofit


【解决方案1】:

作为对开发人员的认真建议开发人员,您需要学习基础知识。只是为了帮助你,上面是JSON数组,我会告诉你步骤

(假设你使用的是android studio)

  1. implementation 'com.squareup.retrofit2:retrofit:2.6.0' & also 
    implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
    

在您的应用中:gradle 文件

  1. 创建一个接口并编写您的 GET 方法,如下所示:
interface yourinterfacename {

 @GET("your url path after base url")
 Call<YourResponseModelCalss> getData();
}
/* baseurl: Say Eg: yourdomain.com/user/data then yourdomain.com/ is ur base url 
& user/data will be your path */

class YourResponseModelCalss {

private List<RespData> Customers; /* make sure 'Customers' is same as mentioned in response else you will not get any data.*/

public static class RespData {

private String Empresa; 

... /* add all your paramters as in the response, make sure parameters name should match exact as mentioned in api response */

// implement getters and setters
}

}

现在,一旦你这样做了,你需要构建 retrofitObject

,,,

retroObject = new retrofit2.Retrofit.Builder() .baseUrl(BASE_URL) .client(httpClient.build()) .addConverterFactory( GsonConverterFactory.create(new Gson())) .build();

/* 确保在不同的类中使用它并在类中实现静态方法,以便您可以获得返回类型为 Retrofit 的复古对象的实例

类似 -> public static Retrofit getRetrofitInstance() { }

*/ ,,,

现在让我们进行 API 调用

YourInterfaceName service = RetroClassIntancename.YourRetroObjectMethodName().create(YourInterfaceName.class)

Call<yourinterfacename> call = service.getData() // remember the method name you created in your interface

call.enqueue(new Callback<YourResponseClassName>() {
  @Override
  public void onResponse(Response<YourResponseClassName> response, Retrofit retrofit) {
    // your code if it is successfull
  }

  @Override
  public void onFailure(Throwable t) {
    // if it fails
  }
});

以上是粗略的实现。有很多很好的教程可供参考。

希望这会有所帮助。快乐编码:)

【讨论】:

    猜你喜欢
    • 2021-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 2020-07-07
    • 1970-01-01
    • 2020-08-28
    • 1970-01-01
    相关资源
    最近更新 更多