zoukankan      html  css  js  c++  java
  • HttpUtil

    package com.eaju.util;


    import java.io.IOException;
    import java.net.URLEncoder;
    import java.nio.charset.Charset;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;

    import org.apache.http.NameValuePair;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpDelete;
    import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.methods.HttpPatch;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.client.methods.HttpPut;
    import org.apache.http.client.methods.RequestBuilder;
    import org.apache.http.entity.ByteArrayEntity;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;
    import org.springframework.http.HttpMethod;
    public class HttpUtil {
    public final static String APPLICATION_PROTOBUF = "application/x-protobuf;charset=UTF-8";
    public final static String APPLICATION_JSON="application/json;charset=UTF-8";
    public final static String APPLICATION_XML="application/xml;charset=UTF-8";
    public final static String TEXT_PLAIN="text/plain;charset=UTF-8";

    /**
    *
    * @param url
    * @param params
    * @param accept
    * @return
    * @throws IOException
    */
    public static byte[] get(String url,Map<String,String> params,String accept) throws IOException{
    CloseableHttpClient httpclient = HttpClients.createDefault();
    if(params != null){
    StringBuilder paramUrl = new StringBuilder();
    for(String key:params.keySet()){
    paramUrl.append(URLEncoder.encode(key,"UTF-8")).
    append("=").
    append(URLEncoder.encode(params.get(key),"UTF-8")).
    append("&");
    }
    url+=url+"?"+paramUrl.substring(0,paramUrl.length()-1);
    }
    HttpGet httpGet =new HttpGet(url);
    httpGet.setHeader("Accept", accept);
    CloseableHttpResponse response =httpclient.execute(httpGet);
    byte[] result = EntityUtils.toByteArray(response.getEntity());
    response.close();
    httpclient.close();
    return result;

    }

    /**
    *
    * @param url
    * @param accept
    * @return
    * @throws IOException
    */
    public static byte[] get(String url,String accept) throws IOException{
    return get(url,null,accept);
    }

    /**
    *
    * @param url
    * @param params
    * @param accept
    * @return
    * @throws IOException
    */
    public static byte[] post(String url,Map<String,String> params,String accept)throws IOException{
    return execute(url,HttpMethod.POST,params,accept);
    }

    /**
    *
    * @param url
    * @param params
    * @param accept
    * @return
    * @throws IOException
    */
    public static byte[] patch(String url,Map<String,String> params,String accept)throws IOException{
    return execute(url,HttpMethod.PATCH,params,accept);
    }

    /**
    *
    * @param url
    * @param params
    * @param accept
    * @return
    * @throws IOException
    */
    public static byte[] put(String url,Map<String,String> params,String accept)throws IOException{
    return execute(url,HttpMethod.PUT,params,accept);
    }

    /**
    *
    * @param url
    * @param data
    * @param contentType
    * @param accept
    * @return
    * @throws IOException
    */
    public static byte[] post(String url,byte [] data,String contentType,String accept)throws IOException{
    return execute(url,HttpMethod.POST,data,contentType,accept);
    }

    /**
    *
    * @param url
    * @param data
    * @param contentType
    * @param accept
    * @return
    * @throws IOException
    */
    public static byte[] put(String url,byte [] data,String contentType,String accept)throws IOException{
    return execute(url,HttpMethod.PUT,data,contentType,accept);
    }

    /**
    *
    * @param url
    * @param data
    * @param contentType
    * @param accept
    * @return
    * @throws IOException
    */
    public static byte[] patch(String url,byte [] data,String contentType,String accept)throws IOException{
    return execute(url,HttpMethod.PATCH,data,contentType,accept);
    }

    /**
    *
    * @param url
    * @param accept
    * @return
    * @throws IOException
    */
    public static byte[] delete(String url,String accept)throws IOException{
    CloseableHttpClient httpclient = HttpClients.createDefault();
    HttpDelete httpDelete = new HttpDelete(url);
    httpDelete.setHeader("Accept", accept);
    CloseableHttpResponse response =httpclient.execute(httpDelete);
    byte[] result =EntityUtils.toByteArray(response.getEntity());
    response.close();
    httpclient.close();
    return result;
    }

    /**
    *
    * @param url
    * @param method
    * @param params
    * @param accept
    * @return
    * @throws IOException
    */
    private static byte[] execute(String url,HttpMethod method,Map<String,String> params,String accept)throws IOException{
    CloseableHttpClient httpclient = HttpClients.createDefault();
    RequestBuilder requestBuilder;
    switch (method){
    case POST:
    requestBuilder = RequestBuilder.post(url);
    if(params != null){
    List<NameValuePair> nvps = new ArrayList <NameValuePair>();
    for(String key:params.keySet()){
    nvps.add(new BasicNameValuePair(key, params.get(key)));
    }
    UrlEncodedFormEntity encodedFormEntity= new UrlEncodedFormEntity(nvps,Charset.forName("UTF-8"));
    requestBuilder.setEntity(encodedFormEntity);
    }
    break;
    case PUT:
    if(params != null){
    for(String key:params.keySet()){
    url+="&"+URLEncoder.encode(key,"UTF-8")+"="+ URLEncoder.encode(params.get(key),"UTF-8");
    }
    url=url.replaceFirst("&","?");
    }
    System.out.println(url);
    requestBuilder = RequestBuilder.put(url);
    break;
    case PATCH:
    requestBuilder = RequestBuilder.patch(url);
    requestBuilder.setHeader("Accept", accept);
    requestBuilder.setCharset(Charset.forName("UTF-8"));
    if(params != null){
    for(String key:params.keySet()){
    requestBuilder.addParameter(new BasicNameValuePair(key, params.get(key)));
    }
    }
    break;
    default:
    requestBuilder = RequestBuilder.post(url);
    if(params != null){
    List<NameValuePair> nvps = new ArrayList <NameValuePair>();
    for(String key:params.keySet()){
    nvps.add(new BasicNameValuePair(key, params.get(key)));
    }
    UrlEncodedFormEntity encodedFormEntity= new UrlEncodedFormEntity(nvps,Charset.forName("UTF-8"));
    requestBuilder.setEntity(encodedFormEntity);
    }
    break;
    }

    CloseableHttpResponse response =httpclient.execute(requestBuilder.build());
    byte[] result =EntityUtils.toByteArray(response.getEntity());
    response.close();
    httpclient.close();
    return result;
    }

    /**
    *
    * @param url
    * @param method
    * @param data
    * @param contentType
    * @param accept
    * @return
    * @throws IOException
    */
    private static byte[] execute(String url,HttpMethod method,byte [] data,String contentType,String accept)throws IOException{
    CloseableHttpClient httpclient = HttpClients.createDefault();
    HttpEntityEnclosingRequestBase httpRequest;
    switch (method){
    case POST:
    httpRequest = new HttpPost(url);
    break;
    case PUT:
    httpRequest = new HttpPut(url);
    break;
    case PATCH:
    httpRequest = new HttpPatch(url);
    break;
    default:
    httpRequest = new HttpPost(url);
    }
    httpRequest.setHeader("Content-Type", contentType);
    httpRequest.setHeader("Accept", accept);
    if(data != null){
    httpRequest.setEntity(new ByteArrayEntity(data));
    }
    CloseableHttpResponse response =httpclient.execute(httpRequest);
    byte[] result =EntityUtils.toByteArray(response.getEntity());
    response.close();
    httpclient.close();
    return result;
    }

    }

  • 相关阅读:
    sql学习之1-create、select
    mysql利用binlog日志恢复数据库小实验
    vmware 存储路径
    ubuntu基本命令
    Java编程规范整理
    种菜之旅
    modSecurity规则学习(五)——DDOS攻击检测
    modSecurity规则学习(三)——SecRule
    modSecurity规则学习(二)——配置文件
    modSecurity规则学习(一)——配置文件
  • 原文地址:https://www.cnblogs.com/21heshang/p/6010613.html
Copyright © 2011-2022 走看看