j#

1、导入HttpClinet的依赖包

 1 <dependency>
 2             <groupId>org.apache.httpcomponents</groupId>
 3             <artifactId>httpcore</artifactId>
 4             <version>4.4.6</version>
 5         </dependency>
 6 
 7         <dependency>
 8             <groupId>org.apache.httpcomponents</groupId>
 9             <artifactId>httpclient</artifactId>
10             <version>4.5.1</version>
11         </dependency>
12 
13         <dependency>
14             <groupId>com.alibaba</groupId>
15             <artifactId>fastjson</artifactId>
16             <version>1.2.4</version>
17         </dependency>
18 
19         <dependency>
20             <groupId>commons-httpclient</groupId>
21             <artifactId>commons-httpclient</artifactId>
22             <version>3.1</version>
23         </dependency>

2、编写post请求方法

    public static String sendSetHeaderGetRequestByPostForJson(String url,Map<String,String> headMap,Map<String,Object> psotMap/*String appUid,String listMsgIds*/ ) throws Exception{
        String result="";
        try {
            //CloseableHttpClient httpclient = HttpClients.createDefault();
            HttpClient httpclient = HttpClients.createDefault();
            ResponseHandler<String> responseHandler = new BasicResponseHandler();

            RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(6000).setConnectTimeout(6000).build();//设置请求和传输超时时间
            HttpPost httpPost = new HttpPost(url);
            httpPost.setConfig(requestConfig);
            httpPost.addHeader(HTTP.CONTENT_TYPE, "application/json");
            //httpPost.setHeader("Content-type", "application/json");
            httpPost.addHeader(HTTP.CONTENT_TYPE,  "text/json");
            for(String key:headMap.keySet()){
                httpPost.setHeader(key, headMap.get(key));
            }
            //将参赛转成json字符串并设置json的编码UTF-8
            StringEntity se = new StringEntity(JSONObject.toJSONString(psotMap),ContentType.APPLICATION_JSON);
            se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
            httpPost.setEntity(se);
            String response= httpclient.execute(httpPost,responseHandler);
            JSONObject ret = JSONObject.parseObject(response);
            result=ret.toJSONString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

3、springMVC接收请求代码

@RequestMapping(value="/getIntegralConsumption2",method = RequestMethod.POST,produces="application/json;charset=UTF-8")
    @ResponseBody
    public R getIntegralConsumption2(@RequestBody AA aa,HttpServletRequest request) {
        String usernum = (String) request.getAttribute("usernum");
        System.out.println(aa);
        return R.ok().put("1", "积分扣减成功");
    }

4、测试方法


public static void test2(){
String host = "http://192.168.199.161:8080";
String url=host+"/integral/getIntegralConsumption2";

String token="eyJhbGciOiJIUzUxMiJ9.eyJyYW5kb21LZXkiOiJnMGVvaDciLCJzdWIiOiIzMDE0MTI5NiIsImV4cCI6MTUzNDYwMDAzNywiaWF0IjoxNTM0NTkyODM3fQ.L_cHcUpGkTWBxYJ_z4Zgrwka1yz36TUR3a9pP-OLZ4dmW-jOt8rECNG-9MK0XjylfMl2kBRc5_IX1dEnXDi2Jg";
try {
//header
Map<String,String> headerMap=new HashMap<String, String>();
headerMap.put("Authorization","Bearer "+token);
//普通参数
Map<String,Object> params=new HashMap<String,Object>();
params.put("integra","99");
params.put("orderId","可以了");

String info=sendSetHeaderGetRequestByPostForJson(url,headerMap,params);
System.out.println("返回结果:"+info);
//JSONObject jsonData = JSONObject.parseObject(info);
} catch (Exception e) {
e.printStackTrace();
}
}

5、用main方法测试即可,直接显示运行结果

接收端:AA [integra=99, orderId=可以了]

请求端:返回结果:{"1":"积分扣减成功","code":0,"msg":"success"}

 

posted on 2018-08-18 21:34  j#  阅读(1000)  评论(0)    收藏  举报