我打电话给Twitter搜索并获得JSON响应。我的理解是,如果超过了Twitter请求限制,这将在HttpResponse代码中报告。如何在请求发出后从HttpClient类中获取响应代码?
也有人知道这是否实际上是Twitter如何报告超出的速率限制?
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
HttpGet get = new HttpGet(searchUrl);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String responseBody = null;
try{
responseBody = client.execute(get, responseHandler);
// How can I get HTTP response code?
}
catch(Exception ex)
{
ex.printStackTrace();
}
答案 0 :(得分:4)
根本不要使用响应处理程序 - 您可以使用HttpResponse
从普通HttpResponse#getStatusLine()
实例获取状态代码:
HttpGet get = new HttpGet(searchUrl);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
HttpResponse response = client.execute(get);
int statusCode = response.getStatusLine().getStatusCode();
推荐阅读:
BasicResponseHandler
返回String
而不是抛出异常时 NB ,这意味着响应代码为2xx
(即200 <= code < 300
})。