web-dev-qa-db-ja.com

HttpClientステータスコードを取得

Apache HttpClient 4.1.3を使用して、HttpGetからステータスコードを取得しようとしています。

HttpClient client = new DefaultHttpClient();
HttpGet response = new HttpGet("http://www.example.com");
ResponseHandler<String> handler = new BasicResponseHandler();
String body = client.execute(response, handler);

body?からステータスコード(202、404など)を抽出する方法または、4.1.3でこれを行う別の方法がある場合、それは何ですか?

また、完全/良好なHTTP応答はHttpStatus.SC_ACCEPTEDしかし、それについても確認したいと思います。前もって感謝します!

38
IAmYourFaja

編集:

で試してください:

HttpResponse httpResp = client.execute(response);
int code = httpResp.getStatusLine().getStatusCode();

HttpStatusは200(HttpStatus.SC_OK

(問題を速すぎて読みました!)


で試してください:

GetMethod getMethod = new GetMethod("http://www.example.com");
int res = client.executeMethod(getMethod);

これでうまくいくはずです!

73
Enrichman

これはどう?

HttpResponse response = client.execute(getRequest);

// Status Code
int statusCode = response.getStatusLine().getStatusCode();

ResponseHandler<String> responseHandler = new BasicResponseHandler();
// Response Body
String responseBody = responseHandler.handleResponse(response);
5
user1689757

私は次のようにします:

HttpResponse response = client.execute(httppost);
int status = response.getStatusLine().getStatusCode();

ResponseHandlerを使用せずに、respose本文をStringとして取得するには、まずInputStreamとして取得します。

InputStream is = response.getEntity().getContent();

そして、それを文字列に変換します(その方法は here

4
anastluc