Welcome

首页 / 软件开发 / JAVA / Java 实现Http的get和post请求封装类

Java 实现Http的get和post请求封装类


需要引入

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



package cn.com.weisoft.mvcapp.utils;

import org.apache.http.*;

import org.apache.http.client.HttpClient;

import org.apache.http.client.entity.UrlEncodedFormEntity;

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.HttpClientBuilder;

import org.apache.http.impl.client.HttpClients;

import org.apache.http.message.BasicNameValuePair;

import org.apache.http.util.EntityUtils;


import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.URI;

import java.util.*;

public class HttpUtil {


   /**

    * get请求

    * @return

    */

   public static String doGet(String url) {

       try {

           HttpClient client = HttpClientBuilder.create().build();

           //发送get请求

           HttpGet request = new HttpGet(url);

           HttpResponse response = client.execute(request);

           // 请求发送成功,并得到响应

           if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {

               // 读取服务器返回过来的json字符串数据

               return EntityUtils.toString(response.getEntity());

           }

       }

       catch (IOException e) {

           e.printStackTrace();

       }


       return null;

   }


   /**

    * post请求(用于key-value格式的参数)

    * @param url

    * @param params

    * @return

    */

   public static String doPost(String url, Map params){

       BufferedReader in = null;

       try {

           // 定义HttpClient

           HttpClient client = HttpClientBuilder.create().build();

           // 实例化HTTP方法

           HttpPost request = new HttpPost();

           request.setURI(new URI(url));


           //设置参数

           List

           for (Iterator iter = params.keySet().iterator(); iter.hasNext();) {

               String name = (String) iter.next();

               String value = String.valueOf(params.get(name));

               nvps.add(new BasicNameValuePair(name, value));

           }

           request.setEntity(new UrlEncodedFormEntity(nvps, "utf-8"));


           HttpResponse response = client.execute(request);

           int code = response.getStatusLine().getStatusCode();

           // 请求成功

           if(200 == code){

               in = new BufferedReader(new InputStreamReader(response.getEntity().getContent(),"utf-8"));

               StringBuffer sb = new StringBuffer("");

               String line = "";

               String nL = System.getProperty("line.separator");

               while ((line = in.readLine()) != null) {

                   sb.append(line + nL);

               }

               in.close();


               return sb.toString();

           }

           else{

               System.out.println("状态码:" + code);

               return null;

           }

       }

       catch(Exception e){

           e.printStackTrace();

           return null;

       }

   }


   /**

    * 数据推送

    * post请求(用于请求json格式的参数)

    * @param url

    * @param params

    * @return

    */

   public static String doPost(String url, String params) throws Exception {

       CloseableHttpClient httpclient = HttpClients.createDefault();

       // 创建httpPost

       HttpPost httpPost = new HttpPost(url);

       httpPost.setHeader("Accept", "application/json");

       httpPost.setHeader("Content-Type", "application/json");

       String charSet = "UTF-8";

       StringEntity entity = new StringEntity(params, charSet);

       httpPost.setEntity(entity);

       CloseableHttpResponse response = null;

       try {

           response = httpclient.execute(httpPost);

           StatusLine status = response.getStatusLine();

           int state = status.getStatusCode();

           if (state == HttpStatus.SC_OK) {

               HttpEntity responseEntity = response.getEntity();

               return EntityUtils.toString(responseEntity);

           }

       }

       finally {

           if (response != null) {

               try {

                   response.close();

               } catch (IOException e) {

                   e.printStackTrace();

               }

           }

           try {

               httpclient.close();

           } catch (IOException e) {

               e.printStackTrace();

           }

       }

       return null;

   }


   /**

    * 设置http headMap

    * @param host

    * @param content_type

    * @return

    */

   public Map

       Map

       headMap.put("Host",host);

       headMap.put("Content_Type",content_type);


       return headMap;

   }


   public Map

       Map

       if (accessToken != null) {

           bodyMap.put("accessToken",accessToken);

       }

       if (deviceSerial != null) {

           bodyMap.put("deviceSerial",deviceSerial);

       }

       if (validateCode != null) {

           bodyMap.put("validateCode",validateCode);

       }


       return bodyMap;

   }


}