如何通过改造 Android 提出请求

Posted

技术标签:

【中文标题】如何通过改造 Android 提出请求【英文标题】:How to make a request get by retrofit 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 数组。 【参考方案1】:

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

(假设你使用的是android studio)

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

在您的应用中:gradle 文件

    创建一个接口并编写您的 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
  
);

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

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

【讨论】:

以上是关于如何通过改造 Android 提出请求的主要内容,如果未能解决你的问题,请参考以下文章

如何在body参数改造android中发送数组请求

Kotlin 使用协程处理改造请求

如何使用android studio中的改造服务在请求中传递json

如何在 Android 的改造请求中传递 JSON 对象并检索 JSON 对象?

基于androi的医院挂号预约系统app

改造和授权饼干