当前位置: 首页 > 知识库问答 >
问题:

HttpClient获取状态代码[重复]

裴俊智
2023-03-14

使用ApacheHttpClient 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等)?或者,如果在4.1.3中还有另一种方法可以做到这一点,那它是什么?

另外,我假设完美/良好的HTTP响应是HttpStatus。SC_接受了,但也希望得到确认。提前谢谢!

共有3个答案

宋丰
2023-03-14

我这样做就像:

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

要将resment主体作为String(虽然不使用响应处理程序),我首先将其作为InputStream获取:

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

然后将其转换为String(如何在这里这样做)

商瀚
2023-03-14

这个怎么样?

HttpResponse response = client.execute(getRequest);

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

ResponseHandler<String> responseHandler = new BasicResponseHandler();
// Response Body
String responseBody = responseHandler.handleResponse(response);
叶书
2023-03-14

编辑:

尝试:

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

HttpStatus应为200(HttpStatus.SC\u OK

这个问题我读得太快了!)

尝试:

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

这应该能奏效!

 类似资料:
  • 我正在尝试创建一个登录表单。当我用Postman测试服务时,我会得到一个带有状态代码等的body对象。 但是,使用JavaScript fetch,我无法获取body对象,并且我刚刚收到一个错误: 我需要在Fetch中获取状态代码。

  • 问题内容: 我想记录301s和302s,但是找不到在Client.Do,Get,doFollowingRedirects,CheckRedirect中读取响应状态代码的方法。我是否必须自己实施重定向才能实现这一目标? 问题答案: 该类型允许您指定自定义传输方式,这应允许您执行后续操作。应该执行以下操作: (如果仅支持链接到默认传输,则可以稍微简化一下)。 然后,您可以使用此传输方式创建客户端,并记

  • 我的目标是从Spring WebClient请求中获取HttpStatus。请求的所有其他信息都不相关。

  • 我在一些示例代码中使用Apache的HttpClient Fluent Facade,供开发人员扩展。他们非常喜欢fluent facade,它可以直接调用: 此外,我还可以通过调用以下命令获取状态代码: 不幸的是,在一些情况下,我除了需要主体之外还需要状态代码。基于这个问题,我认为我可以让他们学习HttpClient对象- 但是,这意味着初始化HttpClient对象并似乎拒绝Fluent接口和

  • 如何从的结果中获取HTTP状态?

  • 在Axios文档中: 我们知道我们可以在