0%

java | Okhttp request

在这个博文中,我们主要讲述,如何获取以及改变 request 的各项参数,通常 request 会和 拦截器联系在一起。


属性值的获取


request.body

request.body 中,主要是字节存储,所以,想要使用,首先得把字节转化为 string,修改会再转为字节。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class FtxInterceptor extends BaseInterceptor {
...

@Override
public void buildSign(Request request, Request.Builder builder) {
try {
String body = bodyToString(request.body());
} catch (Exception e) {
logger.error("sign is error {} {}", e.getLocalizedMessage(), e);
}

}

private String bodyToString(final RequestBody body) {
try {
final Buffer buffer = new Buffer();
if (body != null) {
body.writeTo(buffer);
} else {
return "";
}
return buffer.readUtf8();
} catch (IOException e) {
logger.error("body to string error", e);
throw new RuntimeException(e);
}
}
}
请我喝杯咖啡吧~