gpt4 book ai didi

android - Retrofit 无法创建调用适配器

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:59:38 25 4
gpt4 key购买 nike

这是我的用户服务界面

 @GET(Constants.Api.URL_LOGIN)
String loginUser(@Field("email") String email, @Field("password") String pass, @Field("secret") String secret, @Field("device_id") String deviceid, @Field("pub_key") String pubkey, @Field("device_name") String devicename);

在我调用的 Activity 中

retrofit = new Retrofit.Builder()
.baseUrl(Constants.Api.URL_BASE)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
service = retrofit.create(UserService.class);
String status = service.loginUser(loginedt.getText().toString(), passwordedt.getText().toString(), secret, device_id, pub_key, device_name);

这会产生一个异常

java.lang.IllegalArgumentException: Unable to create call adapter for class java.lang.String
for method UserService.loginUser

我做错了什么?

Gradle :

compile 'com.squareup.retrofit:retrofit:2.+'
compile 'com.squareup.retrofit:adapter-rxjava:2.0.0-beta1'
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta1'

最佳答案

由于您已经包含了 addCallAdapterFactory(RxJavaCallAdapterFactory.create()),您希望使用 Observable 来管理您的调用。在您的界面中,显式提供参数化的 Observable 而不是 Call --

@GET(Constants.Api.URL_LOGIN)
Observable<String> loginUser(@Field("email") String email, @Field("password") String pass, @Field("secret") String secret, @Field("device_id") String deviceid, @Field("pub_key") String pubkey, @Field("device_name") String devicename);

然后您的 service 方法会为您创建可观察对象,您可以订阅或将其用作可观察管道的起点。

Observable<String> status = service.loginUser(loginedt.getText().toString(), passwordedt.getText().toString(), secret, device_id, pub_key, device_name);
status.subscribe(/* onNext, onError, onComplete handlers */);

关于android - Retrofit 无法创建调用适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32411887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com