41

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);

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

また、完璧な/良好な HTTP 応答は 1 つであると思いますが、HttpStatus.SC_ACCEPTEDそれについても確認してください。前もって感謝します!

4

3 に答える 3

78

編集:

試してみてください:

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);

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

于 2012-06-06T10:17:25.033 に答える
5

これはどう?

HttpResponse response = client.execute(getRequest);

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

ResponseHandler<String> responseHandler = new BasicResponseHandler();
// Response Body
String responseBody = responseHandler.handleResponse(response);
于 2013-02-11T19:33:42.513 に答える
4

私はそれを次のようにします:

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

応答本体を文字列として取得するには、responseHandlerを使用しないことで、最初にInputStreamとして取得します。

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

次に、それを文字列に変換します(ここでそれを行う方法)

于 2012-10-11T10:33:02.783 に答える