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);
        }
    }
    
  • 相关阅读:
    [array] leetcode
    [array] leetcode
    [array] leetcode
    无法将“Scaffold-DbContext”项识别为 cmdlet、函数、脚本文件或可运行程序的名称...
    远程桌面报错解决:No Remote Desktop License Servers Available
    linux设置开机自启动
    阿里云ECS服务器环境搭建 ubuntu 16.04 图形界面的安装
    VS C#程序打包覆盖安装不能更新的解决方法
    MySql EF6 DBFirst 向导无法生成 edmx 解决方法(同:您的项目引用了最新实体框架;但是,找不到数据链接所需的与版本兼容的实体框架数据库提供程序)
    "docker build" requires exactly 1 argument(s).
  • 原文地址:https://www.cnblogs.com/liehen2046/p/11083930.html
Copyright © 2011-2022 走看看