http/https请求数据时,出现的常见异常判断

在请求数据出现问题时,我们往往需要判断一下是数据提取问题,还是网络/服务器异常问题。前者,在开发过程中自行判断;后者情况下,我们会予以提示,eg.提示“连接异常,请检查网络”等字段。此时单独再去判断一下网络感觉没有必要,我们可以捕捉这些异常,然后予以判断。

以下就是本人App中常用的:

if( s.contains("ConnectException") || s.contains("SocketTimeoutException") 
        || s.contains("HttpException") || s.contains("UnknownHostException")) {

    if (rl_cover != null)
        rl_cover.setVisibility(View.GONE);
    if (progressBar != null)
        progressBar.setVisibility(View.GONE);


     showDialog();
}

其中,s为系统提取的异常信息


判断一个HTTP请求是否为multipart请求,可以检查请求头中的Content-Type字段。如果Content-Type字段的值以"multipart/"开头,则该请求为multipart请求。例如,常见的multipart类型包括"multipart/form-data"和"multipart/mixed"。 当遇到MultipartException异常,可以按照以下步骤进行处理: 1. **检查请求头**:首先确认请求的Content-Type字段是否为multipart类型。如果不是,则说明请求本身不是multipart请求,可能是其他问题导致异常。 2. **验证请求数据**:确保请求中包含正确的multipart数据格式。可以通过调试或日志记录来查看请求的具体内容,确认数据格式是否正确。 3. **处理异常**:在捕获到MultipartException异常,可以进行相应的处理,例如返回错误响应给客户端,提示用户重新提交请求或检查上传的文件。 4. **日志记录**:记录详细的异常信息和请求数据,以便后续排查问题。 以下是一个简单的示例代码,展示如何判断一个HTTP请求是否为multipart请求,并在捕获到MultipartException异常进行处理: ```java import org.springframework.web.multipart.MultipartException; import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class CustomExceptionHandler implements HandlerExceptionResolver { @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { if (ex instanceof MultipartException) { // 检查请求头是否为multipart类型 String contentType = request.getContentType(); if (contentType != null && contentType.startsWith("multipart/")) { // 处理multipart请求异常 ModelAndView modelAndView = new ModelAndView("multipartError"); modelAndView.addObject("error", "上传文件失败,请检查文件格式和大小。"); return modelAndView; } else { // 不是multipart请求,可能是其他问题 ModelAndView modelAndView = new ModelAndView("error"); modelAndView.addObject("error", "请求处理失败,请稍后重试。"); return modelAndView; } } // 处理其他异常 ModelAndView modelAndView = new ModelAndView("error"); modelAndView.addObject("error", "服务器内部错误,请稍后重试。"); return modelAndView; } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值