zoukankan      html  css  js  c++  java
  • HttpClient的get和post方式提交数据的使用

    /**
     * Http工具类
     */
    public class HttpUtil {
        // 创建HttpClient对象
        public static HttpClient httpClient = new DefaultHttpClient();
        public static final String BASE_URL = "";
    
        /**
         * get请求
         *
         * @param url
         *            发送请求的URL
         * @return 服务器响应字符串
         * @throws Exception
         */
        public static String doGet(String url) throws Exception {
            // 创建HttpGet对象。
            HttpGet get = new HttpGet(url);
            // 发送GET请求
            HttpResponse httpResponse = httpClient.execute(get);
            // 如果服务器成功地返回响应
            if (httpResponse.getStatusLine().getStatusCode() == 200) {
                // 获取服务器响应字符串
                HttpEntity entity = httpResponse.getEntity();
                InputStream content = entity.getContent();
                return convertStreamToString(content);
            }
            return null;
        }
    
        /**
         * post请求
         *
         * @param url
         *            发送请求的URL
         * @param params
         *            请求参数
         * @return 服务器响应字符串
         * @throws Exception
         */
        public static String doPost(String url, Map<String, String> rawParams)
                throws Exception {
            // 创建HttpPost对象。
            HttpPost post = new HttpPost(url);
            // 如果传递参数个数比较多的话可以对传递的参数进行封装
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            for (String key : rawParams.keySet()) {
                // 封装请求参数
                params.add(new BasicNameValuePair(key, rawParams.get(key)));
            }
            // 设置请求参数
            post.setEntity(new UrlEncodedFormEntity(params, "utf-8"));
            // 发送POST请求
            HttpResponse httpResponse = httpClient.execute(post);
            // 如果服务器成功地返回响应
            if (httpResponse.getStatusLine().getStatusCode() == 200) {
                // 获取服务器响应字符串
                HttpEntity entity = httpResponse.getEntity();
                InputStream content = entity.getContent();
                return convertStreamToString(content);
            }
            return null;
        }
    
        /**
         * 获取服务器的响应,转换为字符串
         */
        private static String convertStreamToString(InputStream is) {
            BufferedReader reader = new BufferedReader(new InputStreamReader(is));
            StringBuilder sb = new StringBuilder();
            String line = null;
            try {
                while ((line = reader.readLine()) != null) {
                    sb.append(line);
                }
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return sb.toString();
        }
    }
  • 相关阅读:
    Automatically Display Menu on Hover
    WPF自学教程系列1:如何将WPF空间嵌套到Form窗口?
    NET中的内存管理,GC机制,内存释放过程. 转载
    C++ 初始化和赋值的区别
    2.尽量用const, enum, inline代替#define Prefer const, enum, inline to #define.
    1.视C++为一个语言联邦 View C++ as a federation of languages
    C++内存对齐
    C++ class和struct的区别
    redhat AS5 Samba服务配置
    windowsXP & 2003 加固
  • 原文地址:https://www.cnblogs.com/androidsuperman/p/3468477.html
Copyright © 2011-2022 走看看