All Downloads are FREE. Search and download functionalities are using the official Maven repository.

shz.spring.DefaultApiRequest Maven / Gradle / Ivy

There is a newer version: 10.2.5
Show newest version
package shz.spring;

import com.alibaba.fastjson2.JSON;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import shz.core.HttpHelp;
import shz.core.api.AbstractApiRequest;
import shz.core.api.ApiIgnore;
import shz.core.api.ApiRequestConfig;
import shz.core.api.ApiResponse;

import java.util.Map;

public class DefaultApiRequest extends AbstractApiRequest {
    @ApiIgnore
    protected static final Logger log = LoggerFactory.getLogger(DefaultApiRequest.class);

    @Override
    protected T analysis(String response) {
        return JSON.parseObject(response, tCls);
    }

    @Override
    protected ApiRequestConfig getConfig() {
        ApiRequestConfig config = super.getConfig();
        config.setUrl(BeanContainer.getExpressionProperty(config.getUrl()));
        config.setMethod(BeanContainer.getExpressionProperty(config.getMethod()));
        config.setProxyHost(BeanContainer.getExpressionProperty(config.getProxyHost()));
        config.setProxyPort(BeanContainer.getExpressionProperty(config.getProxyPort()));
        config.setConnectTimeoutMills(BeanContainer.getExpressionProperty(config.getConnectTimeoutMills()));
        config.setReadTimeoutMills(BeanContainer.getExpressionProperty(config.getReadTimeoutMills()));
        return config;
    }

    @Override
    protected String apiValue(String value) {
        return BeanContainer.getExpressionProperty(value);
    }

    @Override
    protected String url(Map dataMap) {
        String url = super.url(dataMap);
        if (config.getMethod().startsWith("P")) return url;
        return HttpHelp.jointUrl(url, dataMap);
    }

    @Override
    protected String body(Map dataMap) {
        if (dataMap.isEmpty() || !config.getMethod().startsWith("P")) return null;
        return JSON.toJSONString(dataMap);
    }

    @Override
    protected void before(String url, String body) {
        if (log.isInfoEnabled()) log.info("请求url:{},body:{}", url, body);
    }

    @Override
    protected void after(String url, String body, String response) {
        if (log.isInfoEnabled()) log.info("请求url:{},body:{},响应:{}", url, body, response);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy