HttpClient中使用x-www-form-urlencoded方式调用接口


1、POST请求传递参数的方式

 

 

 2、HttpClient相关包的引用

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.4</version>
</dependency>

3、工具类的编写

public static void tsend()  {
            List<NameValuePair> params=new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("appCode","xxxxxbdd4f7c9bcxxxx"));
            params.add(new BasicNameValuePair("appKey","xxxxx05A0D2CBxxxx58D"));
            params.add(new BasicNameValuePair("receiver","1801956xxxx"));
            params.add(new BasicNameValuePair("content","测试18019563xxx"));
            String url="http://xx.203.210.xxx:8081/mrsr/rest/mc/sms";
            sendPostByUrlEncoder(url,params);
    }

 

    /**
     * 描述:POST提交,采用x-www-form-urlencoded 构建参数,即将表单内的数据转换为键值对,如:name=java&age=23
     * date: 2021年8月3日 下午2:38:24
     * @author wuyechun2010@163.com
     * @param url
     * @param map
     * @return 
     * @since JDK 1.8
     */
    public static String sendPostByUrlEncoder(String url,Map<String, String> map){
        List<NameValuePair> params=new ArrayList<NameValuePair>();
        for(Map.Entry<String, String> entry : map.entrySet()){
            params.add(new BasicNameValuePair(entry.getKey(),entry.getValue()));
        }
        HttpPost httppost = new HttpPost(url);
        httppost.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
        HttpResponse response = null;
        try {
            httppost.setEntity(new UrlEncodedFormEntity(params,"UTF-8"));
            HttpClient httpClient =HttpClientBuilder.create().build();
            response = httpClient.execute(httppost);
        } catch (IOException e) {
            e.printStackTrace();
        }
        HttpEntity httpEntity = response.getEntity();
        String result = null;
        try {
            result = EntityUtils.toString(httpEntity);
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("输出参数为:"+result);
        return result;
    }

4、测试调用

 

public static void tsend()  {
            List<NameValuePair> params=new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("appCode","7b9272df9cbxxxx7c9bc222350"));
            params.add(new BasicNameValuePair("appKey","1CKBMT3QA0xxxxxB3B00002EF9D58D"));
            params.add(new BasicNameValuePair("receiver","1801956xxxx"));
            params.add(new BasicNameValuePair("content","测试18019563xxx"));
            String url="http://5x.2x3.xxx.160:8081/mrsr/rest/mc/sms";
            sendPostByUrlEncoder(url,params);
    }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM