君子性非异也 善假于物也(四) 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格式获取返回结果 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章