android - 预期 1 个字节,但收到 3 个
问题描述
调用以下 api 时出现此错误。https://uhunt.onlinejudge.org/api/uname2uid/felix_halim
我正在使用改造。得到相同类型的错误。喜欢:
- 预期 1 个字节,但收到 3 个
- 预期 6 个字节,但收到 8 个
- 预期 3 个字节,但收到 5 个
下面给出了我的部分代码。
API接口
public interface UHApi {
@GET("uname2uid/{userName}")
Observable<Integer> loadUserId(
@Path("userName") String userName
);
}
改造计划
public class RetrofitInstance {
private static Retrofit INSTANCE;
private static final String BASE_URL = "https://uhunt.onlinejudge.org/api/";
public static Retrofit getRetrofitInstance() {
if (INSTANCE == null) {
synchronized (RetrofitInstance.class) {
if (INSTANCE == null) {
INSTANCE = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
}
}
}
return INSTANCE;
}
}
API 调用
UHApi mUHApi;
mUHApi = RetrofitInstance.getRetrofitInstance().create(UHApi.class);
mUHApi.loadUserId("felix_halim")
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<Integer>() {
@Override
public void onSubscribe(Disposable d) {
Log.d(TAG,"onSubscribe called");
compositeDisposable.add(d);
}
@Override
public void onNext(Integer userId) {
Log.d(TAG, "onNext called");
Log.e(TAG, "user id = " + userId);
}
@Override
public void onError(Throwable e) {
Log.d(TAG, "onError called");
Log.d(TAG, "onError msg = " + e.getMessage());
e.printStackTrace();
}
@Override
public void onComplete() {
}
});
解决方案
当您在路径注释中定义端点时,将使用端点中的括号。对于 Query 注释,您不需要添加括号和其中的内容。
推荐阅读
- neural-network - 错误设备类型 cuda 的预期对象,但在调用 _th_index_select 时获得了参数 #1 'self' 的设备类型 cpu
- html - CSS:有没有办法为另一个 div 中的一个 div 复制背景大小的“cover”属性?
- java - 使用 Streams 拼字游戏分数
- python - 数据框内的列上的功能
- pygame - 不能发射多于一个射弹
- youtube - Youtube 视频和播放列表选项卡未打开
- python - 当有前导空格时,为什么 Pandas series.str.contains 方法无法检测到匹配?
- c# - 为什么int的插值表达式会出现装箱?
- ffmpeg - Windows的FFMPEG批处理脚本删除前13秒和最后6秒
- php - 从 http 请求获取 php 文件中的数组