【问题标题】:Sending various parameters (JSON) using Retrofit 2使用 Retrofit 2 发送各种参数 (JSON)
【发布时间】:2017-02-01 06:42:16
【问题描述】:

这是接口方法:

@FormUrlEncoded
@POST (“url/myurl")
Call<JsonArray> sendParameters (@Header("x-imei") String imei, @Header("x-id-cliente") String idCliente, @Field(“param1") JsonObject param1, @Field(“param2") JsonArray param2, @Field(“param3") JsonArray param3, @Field(“param4") JsonArray param4,@Field(“param5") JsonArray param5);

以及使用方法:

Call<JsonArray> peticion= RetrofitClient.getRetrofitClient(getActivity()).sendParameters(settings.getString("imei", ""), settings.getString("idCliente", "”),param1,param2,param3,param4,param5);

这样一来,电话就打不通了。

我尝试将所有的接口参数都改成String,在调用中做了param1.toString()、param2.toString()等等,都不管用。

有没有使用 Retrofit 2 在 POST 中发送 JsonObjects 和 JsonArrays 的简单方法?

谢谢。

【问题讨论】:

    标签: android json retrofit2


    【解决方案1】:

    首先你可以创建一个你想作为 POST 正文传递的自定义类

    class CustomClass {
       String param1;
       String parma2;
       String param3;
       //all of your params with getters and setters
    }
    

    然后根据新的 CustomClass 实例使用 @Body 注释更改 Retrofit 方法:

    @POST (“url/myurl")
    Call<JsonArray> sendParameters (@Header("x-imei") String imei, @Header("x-id-cliente") String idCliente, @Body CustomClass customClassInstance);
    

    最终你调用发布数据:

    CustomClass customClassInstance = new CustomClass();
    customClassInstance.setParam1(...);
    //...and so on
    
    Call<JsonArray> peticion= RetrofitClient.getRetrofitClient(getActivity()).sendParameters(settings.getString("imei", ""), settings.getString("idCliente", ""), customClassInstance);
    

    编辑:删除了@FormUrlEncoded 注释

    【讨论】:

    猜你喜欢
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 2019-04-26
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    相关资源
    最近更新 更多