Retrofit请求参数为对象嵌套对象以及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
}
就是这个:
{
。。。
android retrofit
"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、多说⽆益,⾃⼰动⼿试⼀试就知道怎么⽤了。这在请求接⼝的时候⾮常的有⽤。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论