android - TwitterApiClient : what is Callback signature for POST?

标签 android twitter callback http-post retrofit

在为“/1.1/lists/create.json”执行 POST 时指定回调的正确方法是什么?

这是 Twitter API 文档:https://dev.twitter.com/rest/reference/post/lists/create

MyTwitterApiClient

import com.twitter.sdk.android.core.Callback;
import com.twitter.sdk.android.core.TwitterApiClient;
import com.twitter.sdk.android.core.TwitterSession;
import com.twitter.sdk.android.core.models.User;

import retrofit.http.Field;
import retrofit.http.GET;
import retrofit.http.POST;
import retrofit.http.Query;

class MyTwitterApiClient extends TwitterApiClient {
    public MyTwitterApiClient(TwitterSession session) {
        super(session);
    }

    public CustomService getCustomService() {
        return getService(CustomService.class);
    }
}

interface CustomService {
    @GET("/1.1/users/show.json")
    void show(@Query("user_id") long id, Callback<User> cb);

    @POST("/1.1/lists/create.json")
    // I was incorrectly using @Field instead of @Query, be careful!
    void createList(@Query("name") String name, @Query("mode") String mode, Callback cb);
}

最佳答案

我不知道这是否是解决此问题的最佳方法,但它对我有用。感谢@tposchel 通过How can I return String or JSONObject from asynchronous callback using Retrofit? .

MyTwitterApiClient.java 将回调类型更改为 JsonElement

interface CustomService {
    @GET("/1.1/users/show.json")
    void show(@Query("user_id") long id, Callback<User> cb);

    @POST("/1.1/lists/create.json")
    void createList(@Query("name") String name, @Query("mode") String mode, Callback<JsonElement> cb);
}

MainActivity.java

MyTwitterApiClient api = new MyTwitterApiClient(session);
api.getCustomService().createList("MyListName", "private", new Callback<JsonElement>() {
    @Override
    public void success(Result<JsonElement> result) {
       Log.d(TAG, " [success] status: " + result.response.getStatus());
       JsonElement je = result.data;
       Log.d(TAG, " [success] data: " + je.getAsJsonObject().toString());
    }
    @Override
       public void failure(TwitterException e) { }
    });

关于android - TwitterApiClient : what is Callback signature for POST?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34728848/

相关文章:

android - 为什么我不能在构建脚本中使用 gradle task connectedDebugAndroidTest?

android - 内存泄漏和 OutOfMemoryError

twitter - 去建立事件未定义

node.js - 避免 Twitter API (node.js) 的多重验证

javascript - Sails.js 查找记录并将结果存储到 var

c# - 如何实现递归回调模式?

android - 如何更改 ListView 中每个项目的背景颜色?

android - 尝试在 Activity 之间切换时出现 InflateException

python - 使用 tweepy 如何获得推文的收藏和转发?

jquery - AJAX异步调用——回调无法返回数据?