Android

最近更新时间:2023-05-04 17:14:51

我的收藏
以下是 Android 客户端创建 QUIC 请求代码示例,详细 API 说明可参考:Android API 文档

创建 Get 请求

//创建QuicClient,初始化QUIC配置,建议创建后作为全局变量使用,接口说明可参考API文档
QuicClient quicClient = new QuicClient.Builder()
.setCongestionType(QuicClient.CONGESTION_TYPE_BBR) //使用BBR拥塞算法
.setConnectTimeoutMillis(6 * 1000) //配置连接超时时间
.build();
//创建QuicRequest,配置请求url
String url="";
QuicRequest request = new QuicRequest.Builder(url).get().build();

//异步执行请求,获取结果,QuicCall使用说明参考API文档
quicClient.newCall(request).enqueue(new QuicCallback() {
@Override
public void onResponse(QuicCall call, QuicResponse response) throws IOException {
//请求执行成功,获取响应数据
ResponseBody body = response.body();
if(body != null) {
String res = body.string();
}
}
@Override
public void onFailed(QuicCall call, int errorCode, String error) {
//请求执行失败,返回错误信息
}
});

创建 Post 请求

//创建QuicClient,初始化QUIC配置,建议创建后作为全局变量使用,详细配置说明参考API文档
QuicClient quicClient = new QuicClient.Builder()
.setCongestionType(QuicClient.CONGESTION_TYPE_BBR) //使用BBR拥塞算法
.setConnectTimeoutMillis(3 * 1000) //配置连接超时时间
.build();

//构造body数据
String body="your body string";
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), body);

//创建QuicRequest
String url="";
QuicRequest request = new QuicRequest.Builder(url).post(requestBody).build();

//异步执行请求,获取结果,QuicCall使用说明参考API文档
quicClient.newCall(request).enqueue(new QuicCallback() {
@Override
public void onResponse(QuicCall call, QuicResponse response) throws IOException {
//请求执行成功,获取响应数据
ResponseBody body = response.body();
if(body != null) {
String res = body.string();
}
}
@Override
public void onFailed(QuicCall call, int errorCode, String error) {
//请求执行失败,返回错误信息
}
});

取消请求

...
//创建QuicCall,使用说明参考API文档
QuicCall quicCall = quicClient.newCall(request);

//发起请求
...

//通过QuicCall中的cancel方法请取消请求
quicCall.cancel();