Retrofit请求参数为对象嵌套对象以及Android如何抓包

本文介绍了一种处理复杂嵌套对象接口的方法,并通过实例展示了如何利用Fiddler工具进行Android应用的网络请求抓包,便于开发者调试和验证数据交互。

最近项目中有个接口是对象嵌套对象,当时看到的时候有点懵逼,因为平常的接口都是表单形式就行了,没有这么复杂的,我先把我的接口给大家看看,想想有没有思路:

{
  "ThemeType": 0,
  "AreaId": 0,
  "SPoint": "string",
  "EPoint": "string",
  "MinPrice": 0,
  "MaxPrice": 0,
  "KeyWord": "string",
  "XY": {
    "X": 0,
    "Y": 0
  },
  "MinPlayerCount": 0,
  "MaxPlayerCount": 0,
  "Distance": 0,
  "TenantId": 0
}

就是这个:

{
 。。。 

  "XY": {
    "X": 0,
    "Y": 0
  },

  。。。
}

不知道大家有何思路呢?反正当时我的脑袋抽抽了,具体想法就不和大家说了,丢人。就下来是直接上解决的办法,其实非常简单啦。

1、先创建一个对象:

public class TicketsSearchEvent {
    public int ThemeType;
    public int AreaId;
    public String SPoint;
    public String EPoint;
    public int MinPrice;
    public int MaxPrice;
    public String KeyWord;
    public LoacationCoordinate XY;
    public int MinPlayerCount;
    public int MaxPlayerCount;
    public int Distance;
    public int TenantId;

    。。。各个属性的set和get

}

public class LocationCoordinate {
    private double X;
    private double Y;

    public LocationCoordinatet(double x, double y) {
        X = x;
        Y = y;
    }

    public double getX() {
        return X;
    }

    public void setX(double x) {
        X = x;
    }

    public double getY() {
        return Y;
    }

    public void setY(double y) {
        Y = y;
    }
}


2、然后直接@Body即可

    //条件搜索票务
    @POST("填你的")    //这里记得不要写@FormUrlEncoded,别平常习惯了post加加这句,如果加入这句就会以表达的的形式提交,而后台需要的是json形式,千万注意

    Observable<TicketsEntity> requestTicketsData(@Body TicketsSearchEvent event);



3、设置event对象的数据即可。是不是很简单。


4、上面的都不是我今天要说的重点,我今天主要说的是如何使用Android抓包,这样才能真正看到我们向服务器提交了什么数据,服务器给我们返回了什么数据,这是Android开放的必备功能。我当时就是通过抓包来解决的问题。

1)下载抓包工具,抓包工具有很多,我用的是Fiddler

2)如何实现Fiddler关联Android应用进行手机抓包:

①先对Fiddler进行设置


②、


③查看地址:打开黑窗口(cmd),输入:ipconfig


④设置手机代理(以为魅族手机为例,不懂问度娘):打开当前的无线连接:




⑤这样就设置完成了,可以调试了,我来测试一下我刚才的那个接口


5、多说无益,自己动手试一试就知道怎么用了。这在请求接口的时候非常的有用。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值