鸿蒙harmonyOS开发APP时,使用Retrofit+Java在get请求时遇到 ?pageNum=1&pageSize=10的url 的get请求的写法

在鸿蒙HarmonyOS应用开发中,使用Retrofit+Java进行GET请求时,遇到使用`pageNum={pageNum}&pageSize={pageSize}`格式URL会报错。错误提示表明不能使用@Path,而应改用@Query。文章通过对比Android中的正常做法,详细介绍了在鸿蒙系统中处理此类动态查询参数的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

鸿蒙harmonyOS开发APP时,使用Retrofit+Java在get请求时替换URL的时候会出现一个错误

java.lang.IllegalArgumentException: URL query string “pageNum={pageNum}&pageSize={pageSize}” must not have replace block. For dynamic query parameters use @Query.



前言

很明显,这里提示要用 @Query 替换 @Path


一、这里其实是个使用习惯的问题

二、使用步骤

1.一般在Android当中

代码如下(示例):这是没问题的
像这种 ?pageNum=1&pageSize=10的url链接

 @GET("/news/page?pageNum={pageNum}&pageSize={pageSize}")
    Observable<
在Android开发中,当你使用OkHttp、Retrofit和RJava组合进行网络请求,通常会通过Retrofit的Call对象获取响应数据,并通过`enqueue()`方法发起异步请求。当服务器返回的数据在onNext回调里可能会遇到空值的情况,这你需要检查结果是否为null,避免空指针异常。 以下是一个基本的例子: ```java // 创建Retrofit实例 Retrofit retrofit = new Retrofit.Builder() .baseUrl("your_base_url") .addConverterFactory(RetrofitConverterFactory.create()) .build(); // 创建API接口 YourApiService service = retrofit.create(YourApiService.class); // 发起GET请求 Call<YourResponse> call = service.yourMethod(); // 使用try-catch处理可能的空指针异常 call.enqueue(new Callback<YourResponse>() { @Override public void onResponse(Call<YourResponse> call, Response<YourResponse> response) { if (response.isSuccessful()) { YourResponse data = response.body(); // 可能为null if (data != null) { // 处理非空数据 } else { // 数据为空,可以在这里添加处理逻辑,例如错误提示 logError("Received null data"); } } else { // 请求失败,处理错误 logError(response.errorBody().string()); } } @Override public void onFailure(Call<YourResponse> call, Throwable t) { // 错误处理 logError("Request failed: " + t.getMessage()); } }); private void logError(String message) { // 日志记录或UI显示错误信息 Log.e(TAG, message); } ``` 在这个例子中,我们在`onResponse`方法内部首先检查`response.body()`是否为null,如果为null则进行相应的错误处理,比如记录日志或显示用户友好的错误消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值