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 に答える