httpclient模拟post(applecation/x-www-form-urlencoded方式)请求

http post请求工具类:

/**
     * 非json参数方式POST提交
     *
     * @param url
     * @param params
     * @return
     */
    public static String httpPost(String uri, List params) {
        String result = "";
        try {
            CloseableHttpClient httpclient = HttpClients.createDefault();
            HttpPost httpPost = new HttpPost(uri);
            httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded"); // 添加请求头
            httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
            System.out.println(httpPost);
            HttpResponse response = httpclient.execute(httpPost);
            HttpEntity entity = response.getEntity();
            if (entity != null) {
                InputStream instreams = entity.getContent();
                result = convertStreamToString(instreams);
                System.out.println(result);
            }
        } catch (Exception e) {
            e.getMessage();
        }
        return result;
    }


    public static String convertStreamToString(InputStream is) {
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        StringBuilder sb = new StringBuilder();

        String line = null;
        try {
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                is.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return sb.toString();
    }

请求数据组装:

 public R authenticationInfo(AuthenticationInfoEntity authenticationInfo) {


        List nvps = new ArrayList();
        nvps.add(new BasicNameValuePair("apiCode", "P203"));
        nvps.add(new BasicNameValuePair("account", "demo"));
        nvps.add(new BasicNameValuePair("password", "UGFpbGllQDIwMTk="));
        nvps.add(new BasicNameValuePair("name", authenticationInfo.getAiFullName()));
        nvps.add(new BasicNameValuePair("cid", authenticationInfo.getAiIdCard()));
        nvps.add(new BasicNameValuePair("bankCard", authenticationInfo.getAiBankAccount()));
        nvps.add(new BasicNameValuePair("mobile", authenticationInfo.getAiMobile()));

        String jsonStr = httpPost(uri, nvps); //post请求
}

 

你可能感兴趣的:(httpclient)