首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有没有办法防止Apache CloseableHttpClient抛出HttpResponseException?

是的,有办法防止Apache CloseableHttpClient抛出HttpResponseException。HttpResponseException是CloseableHttpClient在执行HTTP请求时可能抛出的异常之一,通常是由于服务器返回的HTTP响应状态码不在200-299的范围内引起的。

为了防止抛出HttpResponseException,可以在执行HTTP请求之前添加异常处理逻辑,对返回的HTTP响应进行状态码的判断。以下是一个示例代码:

代码语言:txt
复制
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

public class HttpClientExample {
    public static void main(String[] args) {
        CloseableHttpClient httpClient = HttpClients.createDefault();
        HttpGet httpGet = new HttpGet("http://example.com");

        try {
            HttpResponse response = httpClient.execute(httpGet);
            int statusCode = response.getStatusLine().getStatusCode();

            if (statusCode >= HttpStatus.SC_OK && statusCode < HttpStatus.SC_MULTIPLE_CHOICES) {
                // HTTP请求成功,继续处理响应
                String responseBody = EntityUtils.toString(response.getEntity());
                // 其他业务逻辑处理
            } else {
                // HTTP请求失败,根据状态码进行相应处理
                System.out.println("HTTP请求失败,状态码:" + statusCode);
            }
        } catch (Exception e) {
            // 异常处理
            e.printStackTrace();
        } finally {
            try {
                httpClient.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

在上述代码中,我们通过判断返回的HTTP响应状态码是否在200-299的范围内来确定HTTP请求是否成功。如果状态码在该范围内,表示请求成功,可以继续处理响应;否则,表示请求失败,可以根据状态码进行相应处理。

推荐的腾讯云相关产品:腾讯云CDN(内容分发网络),详情请参考:https://cloud.tencent.com/product/cdn

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的结果

领券