zoukankan      html  css  js  c++  java
  • 依赖于Apache模拟Http请求

    一、依赖的jar包

    httpclient-4.5.jar
    httpclient-cache-4.5.jar
    httpcore-4.4.1.jar

    package com.lava.lavafaq.utils;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.URL;
    import java.net.URLConnection;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    
    import org.apache.http.HttpEntity;
    import org.apache.http.NameValuePair;
    import org.apache.http.ParseException;
    import org.apache.http.client.ClientProtocolException;
    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.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;
    
    /*
     * 依赖于Apache库
     */
    public class HttpRequest {  
        
        public static String get(String url)
        { 
            String result="";
            CloseableHttpClient client = HttpClients.createDefault();
            try
            {
                 HttpGet httpGet = new HttpGet(url);
                 CloseableHttpResponse resp = client.execute(httpGet);
                 try
                 {
                     HttpEntity entity = resp.getEntity();
                     if (null != entity)
                     {                    
                         result=EntityUtils.toString(entity);
                     }
                 }
                 catch(Exception e)
                 {
                     
                 }
                 finally
                 {
                     resp.close();
                 }
            }
            catch(Exception e)
            {
                
            }
            finally
            {
                try {
                    client.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            return result;
        }
        
        
        public static String post(String url,List<NameValuePair> paramPairs)
        {
            String result="";
             // 1. 获取默认的client实例
            CloseableHttpClient client = HttpClients.createDefault();
            // 2. 创建httppost实例
            HttpPost httpPost = new HttpPost(url);
            // 3. 创建参数队列(键值对列表)
    //        List<NameValuePair> paramPairs = new ArrayList<NameValuePair>();
    //         paramPairs.add(new BasicNameValuePair("username", "admin"));
    //         paramPairs.add(new BasicNameValuePair("password", "123456"));
             UrlEncodedFormEntity entity;
             try
             {
                // 4. 将参数设置到entity对象中
                 entity = new UrlEncodedFormEntity(paramPairs, "UTF-8");
                 // 5. 将entity对象设置到httppost对象中
                 httpPost.setEntity(entity);
                 System.out.println("executing POST request " + httpPost.getURI());
                // 6. 发送请求并回去响应
                 CloseableHttpResponse resp = client.execute(httpPost);
                 try
                 {
                      HttpEntity respEntity = resp.getEntity();
                      if (null != respEntity) 
                      {
                          result=EntityUtils.toString(respEntity, "UTF-8");                      
                      }                 
                     
                 }
                 catch(Exception e)
                 {
    
                 }
                 finally
                 { 
                     // 9. 关闭响应对象
                     resp.close();
                 }
             }
             catch(Exception e)
             {
                 
             }
             finally
             {
                // 10. 关闭连接,释放资源
                 try {
                    client.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
             }
             return result;
        }
    }


  • 相关阅读:
    模块和包
    网络基础之网络协议
    计算机硬件知识
    面试题集锦(一)
    二分查找法
    ORM多表操作示例
    Django之URL(路由系统)用法
    用Nginx实现微信小程序本地SSL请求
    [PHP7.0-PHP7.2]的新特性和新变更
    利用Node的chokidar 监听文件改变的文件。
  • 原文地址:https://www.cnblogs.com/liandy0906/p/9027437.html
Copyright © 2011-2022 走看看