网页学习体会

  • 首页
  • 个人博客
您的位置: 首页  >  技术问答  >  发送 ArrayList带有改造的 POST 请求

发送 ArrayList带有改造的 POST 请求
分类: 技术问答 • 2022-03-04 21:03:21

发送 ArrayList<Object>带有改造的 POST 请求

问题描述:

我想把这样的东西发送到服务器

I want to send something like this to server

{
  "InoorPersonID": "",
  "Discount": 0,
  "DiscountDescription": "",
  "Description": "",
  "OrderDetailList": [
    {
      "ProductID": 0,
      "Amount": 0
    }
  ],
  "ClientId": "",
  "ClientSecret": ""
}

这是我的服务接口

public interface StoreRetrofitSalesService {

    @FormUrlEncoded
    @POST(ServiceUrl.URL_ORDER_SET)
    Call<ServiceResult<Integer>> orderSet(@Field("OrderDetailList") ArrayList<OrderDetail> orderDetails,
                                          @Field("Discount") String discount,
                                          @Field("ClientId") String clientId,
                                          @Field("ClientSecret") String clientSecret,
                                          @Field("Description") String description,
                                          @Field("InoorPersonID") String inoorPersonId,
                                          @Field("DiscountDescription") String discountDescription);

}

logcat 显示这个

The logcat show this

OrderDetailList=org.crcis.noorreader.store.OrderDetail%408208296&Discount=0&...

我有两个问题:

  1. 为什么 OrderDetailList 无法转换为 JSON.
  2. 我如何为这个参数使用@FieldMap.我最近测试了 Map 但它返回相同的结果.
  1. Why OrderDetailList can't convert to JSON.
  2. How can I use @FieldMap for this params. I recently test Map<String, Object> but it returns same result.

谢谢

答

使用 GSON

Retrofit retrofit = new Retrofit.Builder()
    .baseUrl(myBaseUrl)
    .addConverterFactory(GsonConverterFactory.create())
    .build();

像这样为您的数据创建一个模型

Create a model for your data like this

public class Order {

    @SerializedName("InoorPersonID")
    String inoorPersonId;
    @SerializedName("Discount")
    int discount;
    @SerializedName("DiscountDescription")
    String discountDescription;
    @SerializedName("Description")
    String description;
    @SerializedName("OrderDetailList")
    ArrayList<OrderDetail> orderDetailList;
    @SerializedName("ClientId")
    String clientId;
    @SerializedName("ClientSecret")
    String clientSecret;

    //Don't forget to create/generate the getter and setter
}

并将您的服务更改为

public interface StoreRetrofitSalesService {

    @POST(ServiceUrl.URL_ORDER_SET)
    Call<ServiceResult<Integer>> orderSet(@Body Order order);

}

相关推荐

  • 针对简历面试题总结 1、JavaScript this指针、闭包、作用域 3、JavaScript原型,原型链 ? 有什么特点? 9、b继承a的方法 6、针对 jQuery 的优化方法? 200、jQuery框架中$.ajax()的常用参数有哪些? 写一个post请求并带有发送数据和返回数据的样例 165、HTTP协议中,GET和POST有什么区别?分别适用什么场景 ? 四、HTML5 CSS3 87、前端开发的优化问题(看雅虎14条性能优化原则)。 1、对父级设置适合CSS高度:小结,使用设置高度样式,清除浮动产生,前提是对象内容高度要能确定并能计算好。 十、NodeJs
  • C#通过HttpWebRequest发送带有JSON Body的POST请求实现
  • 如何在PL / SQL中发送带有表单数据和参数的POST请求
  • 如何使用带有字符串正文的 volley 发送 POST 请求?
  • 如何使用AngularJS指令从表单发送带有所有参数的POST请求?
  • 使用HttpUnit发送带有POST请求的文件
  • 使用Guzzle发送带有JSON的POST请求
  • 如何快速发送带有嵌套字典的POST请求
  • 如何在Netty中发送带有POST参数的请求?
  • Node.js POST 请求发送的对象数组不仅是 Object
  • 用身体参数android改造POST请求
  • 改造 POST 请求 response.isSuccessful() 返回 false
    网站免责声明 网站地图 最新文章 用户隐私 版权申明
本站所有数据收集于网络,如果侵犯到您的权益,请联系网站进行下架处理。   

Copyright © 2018-2021   Powered By 网页学习体会    备案号:   粤ICP备20002247号