君子性非异也 善假于物也(四) Spring restTemplate自定义http头,进行post请求

 
  

相对于使用HttpClient,HttpUrlConnection ,使用Spring的RestTemplate来模拟HTTP请求相对来说更方便(可以偷更多懒)

maven配置


    junit
    junit
    4.8
    test




    com.alibaba
    fastjson
    1.2.47


    com.fasterxml.jackson.core
    jackson-databind
    2.2.3
    test




    org.springframework
    spring-webmvc
    4.1.5.RELEASE

RestTemplate初始化

RestTemplate rest = new RestTemplate();

//如果不需要对Content-Typeapplication/json的支持 则可以去掉
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.WriteMapNullValue,
        SerializerFeature.QuoteFieldNames, SerializerFeature.DisableCircularReferenceDetect);
fastConverter.setFastJsonConfig(fastJsonConfig);
List fastMediaTypes = new ArrayList<>();
fastMediaTypes.add(MediaType.parseMediaType("application/json; charset=UTF-8"));
fastConverter.setSupportedMediaTypes(fastMediaTypes);
rest.getMessageConverters().add(fastConverter);
fastConverter.setSupportedMediaTypes(fastMediaTypes);
rest.getMessageConverters().add(fastConverter);

生成请求头,可以自定义属性

MultiValueMap, String> headers = new LinkedMultiValueMap, String>();
headers.add("Content-Type", "application/json; charset=UTF-8");
headers.set("Accept", "application/json");

发送请求

String body="this is bodystr";//httpbody的部分  可以以json格式K-V,post发送的属性均在这
HttpEntity entity = new HttpEntity(body, headers);
String result=rest.exchange(url, HttpMethod.POST, entity, String.class).getBody();//以String格式获取返回结果 
  

你可能感兴趣的:(java)