作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Apache HttpComponents (4.5.11) 来测试 Web API。
对于负面测试(例如发送错误的请求),我还想检查响应正文,但 CloseableHttpClient
抛出 HttpResponseException
以及响应的状态代码,而不是返回实际的回复。有没有办法防止这种情况,或者我应该切换到另一个库(例如 RestAssured)?
这是我的做法:
try (CloseableHttpClient httpClient = HttpClients.createDefault();
CloseableHttpResponse response = httpClient.execute(request)) {
ResponseHandler<String> handler = new BasicResponseHandler();
String body = handler.handleResponse(response);
//Deserialize and perform response assertions..
} catch(HttpResponseException e){
//Exception is caught here..
}
pom.xml 依赖项:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.11</version>
</dependency>
最佳答案
我不确定是否理解这个问题。没有什么可以阻止您直接从响应对象获取状态代码并读取响应内容。
try (CloseableHttpClient httpClient = HttpClients.createDefault();
CloseableHttpResponse response = httpClient.execute(request)) {
int statusCode = response.getStatusLine().getStatusCode();
final HttpEntity entity = response.getEntity();
if (entity != null) {
try (InputStream inputStream = entity.getContent()) {
// Do something useful with the response
}
}
}
关于java - 有没有办法防止 Apache CloseableHttpClient 抛出 HttpResponseException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60353480/
我是一名优秀的程序员,十分优秀!