okhttp-basicparamsinterceptor icon indicating copy to clipboard operation
okhttp-basicparamsinterceptor copied to clipboard

thanks

Open youlookwhat opened this issue 7 years ago • 3 comments

已参照源码根据自己项目添加了~

youlookwhat avatar Jul 31 '17 11:07 youlookwhat

@post("finance/getCoinPrice.do") Observable<BaseEntity> getCoinPrice();

我的解决办法是加个假参数 @formurlencoded @post("finance/getCoinPrice.do") Observable<BaseEntity> getCoinPrice(@field("aaa") int aaa); 请教这种请求该怎么写?

MrsLi avatar Aug 29 '17 09:08 MrsLi

你可以加个假参数然后在传到服务器的时候过滤掉;

      if (request.body() instanceof FormBody) {
                    FormBody.Builder newFormBodyBuilder = new FormBody.Builder();
                    newFormBodyBuilder
                            .add("uid", HttpHead.getUid())
                            .add("uuid", HttpHead.getSpUuid())
                            .add("model", HttpHead.getdevice())
                            .add("sys_v", HttpHead.getSysv())
                            .add("v", HttpHead.getVersion())
                            .add("o", "Android")
                            .add("channel", HttpHead.getChannel());

                    FormBody oldFormBody = (FormBody) request.body();
                    int paramSize = oldFormBody.size();
                    if (paramSize > 0) {
                        for (int i = 0; i < paramSize; i++) {
                            // 过滤重复的参数 为了没有参数时可以顺利添加固定参数
                            if (!"o".equals(oldFormBody.name(i))) {
                                newFormBodyBuilder.add(oldFormBody.name(i), oldFormBody.value(i));
                            }
                        }
                    }

                    builder.post(newFormBodyBuilder.build());

                }
```java

youlookwhat avatar Aug 29 '17 10:08 youlookwhat

已经解决了,修改了一下源码的一个判断

MrsLi avatar Sep 05 '17 03:09 MrsLi