java实现Http post(参数json格式)、get 请求的HttpUtil工具类

java代码实现http请求工具类封装

参数介绍:

get方式请求:url:请求地址的字符串

post方式请求:url:请求地址的字符串

                         jsonString:json字符串 

 注意:json字符串的生成的方法如下

需要封装的json格式如下:

    {
           "touser":"OPENID",
           "template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY",         
           "data":{
                   "first": {
                       "value":"恭喜你审核通过!",
                       "color":"#173177"
                   },
                   "keyword1":{
                       "value":"中心",
                       "color":"#173177"
                   },
                   "keyword2": {
                       "value":"移动开发",
                       "color":"#173177"
                   },
                   "remark":{
                       "value":"点击进入",
                       "color":"#173177"
                   }
           }
       }

java代码转json字符串: 

                    Map<String, Object> params=new HashMap<String,Object>();
	            	Map<String, Object> data=new HashMap<String,Object>();
	            	Map<String, Object> first=new HashMap<String,Object>();
	            	Map<String, Object> keyword1=new HashMap<String,Object>();
	            	Map<String, Object> keyword2=new HashMap<String,Object>();
	            	Map<String, Object> remark=new HashMap<String,Object>();
	            	remark.put("value", "点击进入");
	            	remark.put("color", "#173177");
	            	keyword2.put("value", "移动开发");
	            	keyword2.put("color", "#173177");
	            	keyword1.put("value", "中心");
	            	keyword1.put("color", "#173177");
	            	first.put("value", "恭喜你审核通过");
	            	first.put("color", "#173177");
	            	data.put("first", first);
	            	data.put("keyword1", keyword1);
	            	data.put("keyword2", keyword2);
	            	data.put("remark", remark);
	            	params.put("touser", openid);
	            	params.put("template_id", "");
	            	params.put("data", data);
	            	String  paramString= JSON.toJSONString(params);

另外,也可以用转移字符直接“\” 将双引号直接转成字符串内容。

java实现http的get、post请求工具类: 

package com.css.sword.swordkb.web;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.Charset;

import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;

public class HttpUtil {
	private static CloseableHttpClient httpClient;

    static {
        PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
        cm.setMaxTotal(100);
        cm.setDefaultMaxPerRoute(20);
        cm.setDefaultMaxPerRoute(50);
        httpClient = HttpClients.custom().setConnectionManager(cm).build();
    }

    public static String get(String url) {
        CloseableHttpResponse response = null;
        BufferedReader in = null;
        String result = "";
        try {
            HttpGet httpGet = new HttpGet(url);
            RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(30000).setConnectionRequestTimeout(30000).setSocketTimeout(30000).build();
            httpGet.setConfig(requestConfig);
            httpGet.setConfig(requestConfig);
            httpGet.addHeader("Content-type", "application/json; charset=utf-8");
            httpGet.setHeader("Accept", "application/json");
            response = httpClient.execute(httpGet);
            in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
            StringBuffer sb = new StringBuffer("");
            String line = "";
            String NL = System.getProperty("line.separator");
            while ((line = in.readLine()) != null) {
                sb.append(line + NL);
            }
            in.close();
            result = sb.toString();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (null != response) {
                    response.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return result;
    }

    public static String post(String url, String jsonString) {
        CloseableHttpResponse response = null;
        BufferedReader in = null;
        String result = "";
        try {
            HttpPost httpPost = new HttpPost(url);
            RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(30000).setConnectionRequestTimeout(30000).setSocketTimeout(30000).build();
            httpPost.setConfig(requestConfig);
            httpPost.setConfig(requestConfig);
            httpPost.addHeader("Content-type", "application/json; charset=utf-8");
            httpPost.setHeader("Accept", "application/json");
            httpPost.setEntity(new StringEntity(jsonString, Charset.forName("UTF-8")));
            response = httpClient.execute(httpPost);
            in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
            StringBuffer sb = new StringBuffer("");
            String line = "";
            String NL = System.getProperty("line.separator");
            while ((line = in.readLine()) != null) {
                sb.append(line + NL);
            }
            in.close();
            result = sb.toString();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (null != response) {
                    response.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return result;
    }

}

http工具下载地址:https://download.csdn.net/download/zhuchenglin830/11199987

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
可以使用Java自带的java.net包中的HttpURLConnection类来实现调用HTTP请求的功能。以下是一个简单的示例代码: ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class HttpUtil { public static String sendGetRequest(String urlString) throws IOException { URL url = new URL(urlString); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setRequestProperty("Content-Type", "application/json"); BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream())); String inputLine; StringBuilder response = new StringBuilder(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); return response.toString(); } } ``` 在上面的示例代码中,我们定义了一个静态的sendGetRequest方法,该方法接收一个urlString参数,表示需要请求的URL地址,通过该方法我们可以向该URL地址发送一个GET请求,并获取该请求的响应结果。 在sendGetRequest方法中,我们首先通过URL类创建了一个URL对象,然后使用HttpURLConnection类打开了该URL连接,并设置请求的方法为GET,请求的Content-Type为application/json。接着我们创建了一个BufferedReader对象来读取该请求的响应结果,并将其存储在一个StringBuilder对象中。最后,我们关闭了BufferedReader对象并返回了该响应结果的字符串表示。 当然,如果需要发送POST请求,我们可以修改该方法的请求方法为POST,并使用conn.getOutputStream()方法获取输出流,通过输出流向服务器发送请求参数即可。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值