在服务端返回 2XX 以外的 HTTP 响应码时,HttpURLConnection 该怎样拿到 response body?

在与webservice供应商联调SOAP接口时,遇到供应商将业务逻辑错误都以HTTP 500状态码返回,错误信息在body中。当HttpURLConnection遇到非2XX状态码时,不能直接通过getInputStream()获取body。解决办法是在捕获到500 IO异常后,使用getErrorStream()来读取错误响应体的内容,然后通过dealWith500LogicError方法解析错误文本。

和 webservice 供应商联调 saop 接口时遇到一个问题:服务商所有业务逻辑错误 (包括用户名密码、逻辑校验、请求数据为空等等) 都返回 HTTP 状态码 500 而不是状态码 200,同时错误码及详情在返回 body 中给出。

    conn.setDoInput(true);
    conn.setUseCaches(false);
    conn.setDoOutput(true);
    conn.setRequestMethod("POST");
    conn.setConnectTimeout(Integer.valueOf(wsConnectTimeout));
    conn.setReadTimeout(Integer.valueOf(wsRequestTimeout));
    conn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值