0

我正在尝试使用 android-async-http 库http://loopj.com/android-async-http/

它建议使用此代码:

public void getPublicTimeline() throws JSONException {
    TwitterRestClient.get("statuses/public_timeline.json", null, new JsonHttpResponseHandler() {
        @Override
        public void onSuccess(JSONArray timeline) {
            // Pull out the first event on the public timeline
            JSONObject firstEvent = timeline.get(0);
            String tweetText = firstEvent.getString("text");

            // Do something with the response
            System.out.println(tweetText);
        }
    });
}
}

但现在我的问题是我需要获取响应对象,并且还需要获取 http 标头。

如何获取 http 标头?

4

1 回答 1

1

@Zapnologica,似乎库的作者提供了基于此拉取请求的更改:https ://github.com/loopj/android-async-http/pull/170 但它尚未发布,至少是最新可用的 .jar库的版本是 1.4.3,不幸的是,它不包括这些更改。我们可能会尝试使用的唯一选择是克隆/分叉 git repo 并将其源代码包含到您的项目中。

更新: 似乎库很快就会添加到 maven 中央仓库,但至少现在我能够使用 gradle 为我的项目添加 1.4.4 SNAPSHOT 构建,并进行此类配置更改:

repositories {
    ...
    //android-async-client repo
    maven {
        url "https://oss.sonatype.org/content/repositories/snapshots/"
    }
}

然后在依赖项部分:

compile 'com.loopj.android:android-async-http:1.4.4-SNAPSHOT'

从那时起,我就有了一种AsyncHttpResponseHandler可用于覆盖的方法:

@Override
public void onSuccess(int statusCode, Header[] headers, String content) {
    super.onSuccess(statusCode, headers, content);
}

和:

@Override
protected void sendResponseMessage(HttpResponse response) {
    super.sendResponseMessage(response);
}

UPD:这是将lib添加到maven的问题链接:https ://github.com/loopj/android-async-http/issues/168

于 2013-10-10T15:47:58.590 回答