0
我正在写一个改造演示。 我必须使用“https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code”来获取代码。应用网址进行改造
写作休息的时候,我不喜欢这样写道:
public interface WXService {
@GET("/access_token?grant_type=authorization_code")
Observable<AccessTokenModel> getAccessToken(@Query("appid") String appId,
@Query("secret") String secretId,
@Query("code") String code);
}
public class WXRest {
private static final String WXBaseUrl = "https://api.weixin.qq.com/sns/oauth2/";
private WXService mWXService;
public WXRest() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(WXBaseUrl)
.addConverterFactory(GsonConverterFactory.create())
.build();
mWXService = retrofit.create(WXService.class);
}
public void getAccessToken(String code) {
mWXService.getAccessToken(Constants.APP_ID, Constants.SECRET_ID, code)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<AccessTokenModel>() {
@Override
public void call(AccessTokenModel accessTokenModel) {
Log.e("WX", "accessToken:" + accessTokenModel.accessToken);
}
});
}
}
,但我得到了一个错误:
java.lang.IllegalArgumentException: Unable to create call adapter for rx.Observable
我认为这是我改造URL的方式wrong.But我不知道如何解决它。
它可能是监守您使用/两'WXBaseUrl'和'@ GET',删除'/'的GET请求开始像这样'@GET(“access_token?grant_type = authorization_code”)' –
我试过了。但它不起作用。 –
尝试在您的API服务中调用 getAccessToken(....);' –