package com.wms_main.repository.http.entity;

import com.wms_main.repository.utils.StringUtils;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * Http 请求的响应类
 */
@Data
public class HttpResponse {
    /**
     * 请求是否成功
     */
    private boolean success = false;
    /**
     * 响应码
     */
    private int responseCode;
    /**
     * 请求信息
     */
    private String requestMessage;
    /**
     * 响应信息
     */
    private String responseMessage;
    /**
     * 请求时间
     */
    private LocalDateTime requestTime;
    /**
     * 响应时间
     */
    private LocalDateTime responseTime;
    /**
     * 请求地址
     */
    private String requestUrl;
    /**
     * 请求耗时
     */
    private long useTime;
    /**
     * 异常
     */
    private Exception exception;

    /**
     * 获取响应数据
     * @param clazz 转化类型
     * @return 转化结果
     * @param <T> 泛型
     */
    public <T> T getData(Class<T> clazz) {
        return StringUtils.stringToObject(this.getResponseMessage(), clazz);
    }
}
