0

我正在使用Retrofit2,我想发布我们的服务器来获取一些 json 数据。所以我有 2 个类。这是我的响应类:

public class RegisterToken {

private String accessToken;
private String tokenType;
private Integer expiresIn;
private String refreshToken;
private String asClientId;
private String Issued;
private String Expires;
private Map<String, Object> additionalProperties = new HashMap<>();

public String getAccessToken() {
    return accessToken;
}

public void setAccessToken(String accessToken) {
    this.accessToken = accessToken;
}

//and the other setter and getter,actually dont write cuz its too long

}

然后这是我的 API 发布界面:

public interface APIService {
@FormUrlEncoded
@POST("token")
public Callback<RegisterToken>  getRegisterToken(@Header("Accept")String accept,
    @Header("Content-Type")String contentType,@Header("register") String registerActive, 
    @Field("grant_type") String grantType,@Field("client_id") String clientId,
    @Field("client_secret") String clientSecret,Callback<RegisterToken> callback);
}

在活动中我正在这样做:

Gson gson = new GsonBuilder()
            .setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ")
            .create();

    Retrofit client = new Retrofit.Builder()
            .baseUrl(getResources().getString(R.string.base_api_url))
            .addConverterFactory(GsonConverterFactory.create(gson))
            .build();


    APIService service = client.create(APIService.class);
    Callback<RegisterToken> registerToken=service.getRegisterToken("application/json", 
        "application/json", "active", grant_type, client_id, client_secret,
        new Callback<RegisterToken>() {
        @Override
        public void onResponse(retrofit2.Response<RegisterToken> response) {
            Log.v("good","okkay");
        }

        @Override
        public void onFailure(Throwable t) {
            Log.v("bad","shithapp");
        }
    });

这是我想做的邮递员截图: 邮递员截图

所以我收到了这个错误:

java.lang.IllegalArgumentException: Unable to create call adapter for
retrofit2.Callback<RegisterToken> for method APIService.getRegisterToken

我找不到这里有什么问题,我尝试并查看了许多 Stackoverflow 问题但找不到解决方案:(

4

1 回答 1

1

在界面APIService中,将返回类型更改getRegisterToken(...)void。您将通过最后一个回调参数收到 POST 结果的通知。

所以也去掉Callback<RegisterToken> registerToken =之前service.getRegisterToken

于 2016-01-13T15:57:40.463 回答