美文网首页
HTTP工具类

HTTP工具类

作者: Jetlag时 | 来源:发表于2018-08-22 11:52 被阅读18次

            public static final StringDEF_CHATSET ="UTF-8";

    public static final int DEF_CONN_TIMEOUT =30000;

    public static final int DEF_READ_TIMEOUT =30000;

    public static StringuserAgent ="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";

    /**

        * @param url 请求地址

        * @param headers 头部信息

        * @param targetStatusCode 请求的状态

    */

        public static String post(String url, Map headers,int targetStatusCode)throws Exception {

    try (CloseableHttpClient httpclient = HttpClients.createDefault()) {

    HttpPost httpPost =new HttpPost(url);

    if (headers !=null && headers.size() >0) {

    for (Map.Entry header : headers.entrySet()) {

    httpPost.addHeader(header.getKey(), header.getValue());

    }

    }

    CloseableHttpResponse response = httpclient.execute(httpPost);

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

    if (responseCode == targetStatusCode) {

    HttpEntity respEntity = response.getEntity();

    //                return EntityUtils.toByteArray(respEntity);

                    return EntityUtils.toString(respEntity);

    }

    }catch (Exception e) {

    e.printStackTrace();

    throw new Exception(e.toString());

    }

    return  null;

    }

    /**

    *

        * @param strUrl 接口地址

        * @param params 相关的参数

        * @param method 请求的方式 GET

    */

        public static String net(String strUrl, Map params,String method)throws Exception {

    HttpURLConnection conn =null;

    BufferedReader reader =null;

    String rs =null;

    try {

    StringBuffer sb =new StringBuffer();

    if(method==null || method.equals("GET")){

    if (params!=null){

    strUrl = strUrl+"?"+urlencode(params);

    }

    }

    URL url =new URL(strUrl);

    conn = (HttpURLConnection) url.openConnection();

    if(method==null || method.equals("GET")){

    conn.setRequestMethod("GET");

    }

    conn.setRequestProperty("User-agent",userAgent);

    conn.setUseCaches(false);

    conn.setConnectTimeout(DEF_CONN_TIMEOUT);

    conn.setReadTimeout(DEF_READ_TIMEOUT);

    conn.setInstanceFollowRedirects(false);

    conn.connect();

    InputStream is = conn.getInputStream();

    reader =new BufferedReader(new InputStreamReader(is,DEF_CHATSET));

    String strRead =null;

    while ((strRead = reader.readLine()) !=null) {

    sb.append(strRead);

    }

    rs = sb.toString();

    }catch (IOException e) {

    e.printStackTrace();

    }finally {

    if (reader !=null) {

    reader.close();

    }

    if (conn !=null) {

    conn.disconnect();

    }

    }

    return rs;

    }

    /**

    *

        * @param strUrl 接口地址

        * @param params 相关的参数

        * @param method 请求的方式 GET

    */

        public static String get(String strUrl, Map params,String method,String header,String accessToken)throws Exception {

    HttpURLConnection conn =null;

    BufferedReader reader =null;

    String rs =null;

    try {

    StringBuffer sb =new StringBuffer();

    if(method==null || method.equals("GET")){

    if (params!=null){

    strUrl = strUrl+"?"+urlencode(params);

    }

    }

    URL url =new URL(strUrl);

    conn = (HttpURLConnection) url.openConnection();

    if(method==null || method.equals("GET")){

    conn.setRequestMethod("GET");

    }

    conn.setRequestProperty(header,accessToken);

    conn.setRequestProperty("User-agent",userAgent);

    conn.setUseCaches(false);

    conn.setConnectTimeout(DEF_CONN_TIMEOUT);

    conn.setReadTimeout(DEF_READ_TIMEOUT);

    conn.setInstanceFollowRedirects(false);

    conn.connect();

    InputStream is = conn.getInputStream();

    reader =new BufferedReader(new InputStreamReader(is,DEF_CHATSET));

    String strRead =null;

    while ((strRead = reader.readLine()) !=null) {

    sb.append(strRead);

    }

    rs = sb.toString();

    }catch (IOException e) {

    e.printStackTrace();

    }finally {

    if (reader !=null) {

    reader.close();

    }

    if (conn !=null) {

    conn.disconnect();

    }

    }

    return rs;

    }

    public static String urlencode(Map data) {

    StringBuilder sb =new StringBuilder();

    for (Map.Entry i : data.entrySet()) {

    try {

    sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&");

    }catch (UnsupportedEncodingException e) {

    e.printStackTrace();

    }

    }

    return sb.toString();

    }

    相关文章

      网友评论

          本文标题:HTTP工具类

          本文链接:https://www.haomeiwen.com/subject/yvafjftx.html