Java发送http请求,参数和返回结果都是json格式(含有请求头数据)。

本文介绍了如何通过POST请求发送HTTP请求,设置超时配置,处理请求参数,并解析返回的JSON响应。重点展示了使用FastJson库解析HTTP结果体的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

返回结果实体类

public class HttpResult {

    // 响应码
    private Integer code;

    // 响应体
    private String body;

    public HttpResult() {
        super();
    }

    public HttpResult(Integer code, String body) {
        super();
        this.code = code;
        this.body = body;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getBody() {
        return body;
    }

    public void setBody(String body) {
        this.body = body;
    }

}

POST请求接口

 public HttpResult doPost(String url, String requestParam) throws Exception {
        // 声明httpPost请求
        HttpPost httpPost = new HttpPost(url);
        // 加入配置信息
        config = RequestConfig.custom().setSocketTimeout(6000).setConnectTimeout(6000).build();//设置请求和传输超时时间
        httpPost.setConfig(config);
        httpPost.setHeader("key", "value");
		//更多头信息...
        if (null != requestParam) {
            httpPost.setHeader("Content-Type", "application/json");
            httpPost.setHeader("Accept", "application/json");
            httpPost.setEntity(new StringEntity(requestParam, Charset.forName("UTF-8")));
        }
        // 发起请求
        CloseableHttpResponse response = this.httpClient.execute(httpPost);
        int statusCode = response.getStatusLine().getStatusCode();
        String entity = EntityUtils.toString(
                response.getEntity(), "UTF-8");
        HttpResult httpResult = new HttpResult(statusCode, entity);
        
        return httpResult;
    }

调用发送doPost方法

  try {
  			//引入alibaba FastJson包
            JSONObject postJson = new JSONObject();
            //设置json格式的参数
            postJson.put("imei", dto.getImei());
            //url为请求的路径
            HttpResult httpResult = 类名.doPost(url,postJson.toString());
            //将返回结果体转换成json格式
            JSONObject job = JSONObject.parseObject(httpResult.getBody());
            //如果有json中包涵json的形式,用此方法获取
            JSONObject obj = (JSONObject)job.get("data");
            //获取其中具体字段的值,并进行操作
            smokeDetectorLogDO.setSiteId(String.valueOf(obj.get("siteId")));
            smokeDetectorLogDO.setSiteName((String)obj.get("siteName"));
            smokeDetectorLogDO.setBatteryLevel(String.valueOf(obj.get("batteryLevel")));
            smokeDetectorLogDO.setId(UUID.randomUUID().toString());
        }catch (ServiceException e) {
            throw new ServiceException(e.getCode(),e.getMsg());
        }catch (Exception e) {
            System.out.println("查询数据时系统出现异常!");
            e.printStackTrace();
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值