java代码发送http请求

本文介绍了一个基于HTTP请求的离线消息查询接口实现过程,包括请求参数的构造、使用Gson进行JSON转换、发起HTTP请求及解析响应结果。详细展示了如何通过Java代码实现与IM服务器的交互,获取离线消息数据。

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

1. 请求参数Json格式:

{
  "fromId": "acs48624320",
  "toId": "acs48624320",
  "pageSize": "300",
  "pageIndex": "1"
}

2. HTTP请求:

public class httptest {
	/**
     * 获取配置文件的http请求的端口和id
     * dygacim:
     *   url: 192.168.100.57:8083
     */
@Value("${dygacim.url}")
    private  String imIpHost;
	
	/**
     * logger日志
     */
    private static final Logger logger = LoggerFactory.getLogger(CustomerFeignImServiceImpl.class);
    
 	/**
     * 引入gson
     */
    Gson gson =new Gson();
    
  public Object pageQueryCustomerMessage(CustomerMessage customermessage){
		try {
            //取出HTTP请求前缀
            String httpRequest = Constants.HTTP_REQUEST;
            //配置取出IM服务器地址端口
            String registerUrl = httpRequest + imIpHost;
			//将参数转为json格式的字符串            
            String customerMessage=gson.toJson(customermessage);
			//拼接远程调用路径
            registerUrl = registerUrl + "/cim/offLine/pageQueryCustomerMessage.do";
            //发起http请求,将获得的结果赋值给loginResult
            String loginResult = HttpRequest.post(registerUrl).body(customerMessage).timeout(Constants.HTTP_TIME_OUT).execute().body();
        	//将获得的值转为json格式的数据
            JSONObject jsb = JSON.parseObject(loginResult);
            //获取HTTP请求的状态码
            String respCode=jsb.getString("respCode");
            //获取HTTP请求的状态
            String respMessage=jsb.getString("respMessage");
            //获取HTTP请求的返回数据
            String  datas =jsb.getString("data");
            JSONObject data = JSON.parseObject(datas);
            String totalCount=data.get("totalCount").toString();
            String dataString=data.get("data").toString();
            String pageIndex=data.get("pageIndex").toString();
            String pageSize=data.get("pageSize").toString();
            List<PageOffLineVO> list = JSON.parseArray(dataString, PageOffLineVO.class);
            CustomerAndUserMessage customerMessage =new CustomerAndUserMessage();
            customerMessage.setTotalCount(totalCount);
            customerMessage.setPageIndex(pageIndex);
            customerMessage.setPageSize(pageSize);
            customerMessage.setData(list);
            return new OutputObject(String.valueOf(HttpStatus.OK.value()),"成功",customerMessage );
        }catch (Exception e){
            return new OutputObject(String.valueOf(HttpStatus.OK.value()),"失败",e.getMessage() );
        }
 }           			
}

3. 返回结果

{
    "respCode": "200",
    "respMessage": "成功",
    "data": {
        "totalCount": 47,
        "pageIndex": 1,
        "pageSize": 300,
        "data": [
            {
                "head": {
                    "msgId": "",
                    "type": 3,
                    "msgType": null,
                    "msgContentType": null,
                    "fromId": "acs48624320",
                    "toId": "acs48624320",
                    "timestamp": 0,
                    "statusReport": null,
                    "extend": null
                },
                "textModel": {
                    "content": "测试数据007!!"
                },
                "picModel": null,
                "cardModel": null
            }
        ]
    }
}

①. 请求参数实体信息:

public class CustomerMessage {

    private String fromId;
    private String toId;
    private String pageSize;
    private String pageIndex;

    public String getFromId() {
        return fromId;
    }

    public void setFromId(String fromId) {
        this.fromId = fromId;
    }

    public String getToId() {
        return toId;
    }

    public void setToId(String toId) {
        this.toId = toId;
    }

    public String getPageSize() {
        return pageSize;
    }

    public void setPageSize(String pageSize) {
        this.pageSize = pageSize;
    }

    public String getPageIndex() {
        return pageIndex;
    }

    public void setPageIndex(String pageIndex) {
        this.pageIndex = pageIndex;
    }


}

② .返回值实体信息
返回值主实体信息

public class CustomerAndUserMessage <T>{
    private String totalCount;
    private String pageIndex;
    private String pageSize;
    private List<T> data;


    public String getTotalCount() {
        return totalCount;
    }

    public void setTotalCount(String totalCount) {
        this.totalCount = totalCount;
    }

    public String getPageIndex() {
        return pageIndex;
    }

    public void setPageIndex(String pageIndex) {
        this.pageIndex = pageIndex;
    }

    public String getPageSize() {
        return pageSize;
    }

    public void setPageSize(String pageSize) {
        this.pageSize = pageSize;
    }

    public List<T> getData() {
        return data;
    }

    public void setData(List<T> data) {
        this.data = data;
    }


}

返回值中的list集合实体信息
PageOffLineVO 实体

public class PageOffLineVO {

    private headVO head;
    private OnlyTextVO textModel;
    private OnlyPicVO picModel;
    private OnlyCardVO cardModel;

    public OnlyTextVO getTextModel() {
        return textModel;
    }

    public void setTextModel(OnlyTextVO textModel) {
        this.textModel = textModel;
    }

    public OnlyPicVO getPicModel() {
        return picModel;
    }

    public void setPicModel(OnlyPicVO picModel) {
        this.picModel = picModel;
    }

    public OnlyCardVO getCardModel() {
        return cardModel;
    }

    public void setCardModel(OnlyCardVO cardModel) {
        this.cardModel = cardModel;
    }

    public headVO getHead() {
        return head;
    }

    public void setHead(headVO head) {
        this.head = head;
    }

}

headVO实体

public class headVO {
    private String msgId;
    private Integer type;
    private Integer msgType;
    private Integer msgContentType;
    private String fromId;
    private String toId;
    private Long timestamp;
    private Integer statusReport;
    private String extend;

    public String getMsgId() {
        return msgId;
    }

    public void setMsgId(String msgId) {
        this.msgId = msgId;
    }

    public Integer getMsgType() {
        return msgType;
    }

    public void setMsgType(Integer msgType) {
        this.msgType = msgType;
    }

    public Integer getMsgContentType() {
        return msgContentType;
    }

    public void setMsgContentType(Integer msgContentType) {
        this.msgContentType = msgContentType;
    }

    public String getFromId() {
        return fromId;
    }

    public void setFromId(String fromId) {
        this.fromId = fromId;
    }

    public String getToId() {
        return toId;
    }

    public void setToId(String toId) {
        this.toId = toId;
    }

    public Long getTimestamp() {
        return timestamp;
    }

    public void setTimestamp(Long timestamp) {
        this.timestamp = timestamp;
    }

    public Integer getStatusReport() {
        return statusReport;
    }

    public void setStatusReport(Integer statusReport) {
        this.statusReport = statusReport;
    }

    public String getExtend() {
        return extend;
    }

    public void setExtend(String extend) {
        this.extend = extend;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }
}

OnlyTextVO实体

public class OnlyTextVO {
    private String content;

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }
}

OnlyPicVO实体

public class OnlyPicVO {
    private String thumbnailUrl;
    private String imageUrl;

    public String getThumbnailUrl() {
        return thumbnailUrl;
    }

    public void setThumbnailUrl(String thumbnailUrl) {
        this.thumbnailUrl = thumbnailUrl;
    }

    public String getImageUrl() {
        return imageUrl;
    }

    public void setImageUrl(String imageUrl) {
        this.imageUrl = imageUrl;
    }
}

OnlyCardVO实体

public class OnlyCardVO {
    private String link;
    private String title;
    private String imagUrl;
    private String extendStr;
    private String content;
    private String type;

    public String getLink() {
        return link;
    }

    public void setLink(String link) {
        this.link = link;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getImagUrl() {
        return imagUrl;
    }

    public void setImagUrl(String imagUrl) {
        this.imagUrl = imagUrl;
    }

    public String getExtendStr() {
        return extendStr;
    }

    public void setExtendStr(String extendStr) {
        this.extendStr = extendStr;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值