zoukankan      html  css  js  c++  java
  • 写的一个HttpClient类

    package com.ca.test.cainterface.common.util.http;
    
    import com.ca.test.cainterface.common.util.data.Data;
    import com.fasterxml.jackson.annotation.JsonInclude;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import lombok.Getter;
    import lombok.Setter;
    import org.apache.commons.lang3.StringUtils;
    //import org.codehaus.jackson.map.ObjectMapper;
    //import org.codehaus.jackson.map.annotate.JsonSerialize;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.http.*;
    import org.springframework.http.client.SimpleClientHttpRequestFactory;
    import org.springframework.stereotype.Component;
    import org.springframework.web.client.RestTemplate;
    
    @Component
    @Getter
    @Setter
    public class HttpClient {
    
        @Autowired
        RestTemplate restTemplate;
        private String sid = null;
        private String token;
    
        public HttpClient() {
            Data data = new Data();
            this.token = data.getRandomToken();
        }
    
    
        public boolean isCode200(ResponseEntity<String> responseEntity) {
            Integer code = responseEntity.getStatusCode().value();
            if (200 != code) {
                return true;
            }
            return false;
        }
    
        public String getUrl(String host, String path, String... urlParam) {
            return host + String.format(path, urlParam);
        }
    
        private HttpHeaders initHeader() {
            HttpHeaders headers = new HttpHeaders();
            if (sid != null) {
                headers.add("Cookie", "s_id=" + sid);
            }
            headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
            return headers;
        }
    
        public ResponseEntity<String> postWithJson(String url, String parameterStr) {
            if (!StringUtils.isNotBlank(url)) {
                throw new IllegalArgumentException("url can not be null.");
            }
    //        ObjectMapper objectMapper = new ObjectMapper();
    //        objectMapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_EMPTY);
            ObjectMapper objectMapper = new ObjectMapper();
            objectMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
            HttpEntity<String> entity = new HttpEntity<>(parameterStr, initHeader());
            SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
            requestFactory.setConnectTimeout(180000);
            requestFactory.setReadTimeout(180000);
            RestTemplate restTemplate = new RestTemplate(requestFactory);
            return restTemplate.exchange(url, HttpMethod.POST, entity, String.class);
        }
    
        public ResponseEntity<String> get(String url) {
            if (!StringUtils.isNotBlank(url)) {
                throw new IllegalArgumentException("url can not be null.");
            }
            HttpEntity<String> httpEntity = new HttpEntity<>(initHeader());
            return restTemplate.exchange(url, HttpMethod.GET, httpEntity, String.class);
        }
    }
    
  • 相关阅读:
    CentOS7下安装Scrapy
    阿里云ECS提示RHSA-2017:3263: curl security update
    CentOS 7.0安装配置LAMP服务器(Apache+PHP+MariaDB)
    Electron: 从零开始写一个记事本app
    flask请求流程
    编写Dockerfile
    docker-compose使用
    redis持久化切换rdb到aof
    RESTful API规范
    介绍importlib
  • 原文地址:https://www.cnblogs.com/liehen2046/p/11083930.html
Copyright © 2011-2022 走看看