android-async-http库从Response Handler获取http响应头

时间:2013-08-05 15:46:47

标签: android http http-headers http-get response-headers

我正在尝试使用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标头?

1 个答案:

答案 0 :(得分:1)

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

<强>更新 似乎很快就会将库添加到maven central repo中,但至少现在我能够使用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添加lib的问题的链接:https://github.com/loopj/android-async-http/issues/168