zoukankan      html  css  js  c++  java
  • HttpClient

    private static void getHttpClient(String url) {
            /* 1 构造HttpClient的实例 */
            HttpClient httpClient = new HttpClient();
            /* 2 生成 GetMethod 对象并设置参数 */
            GetMethod getMethod = new GetMethod(url);
            // 设置请求重试处理,用的是默认的重试处理:请求三次
            getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
                    new DefaultHttpMethodRetryHandler());
            httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(
                    5000);
            // 设置 get 请求超时为 5 秒
            getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 5000);
    
            /* 3 执行 HTTP GET 请求 */
            try {
                int statusCode = httpClient.executeMethod(getMethod);
                /* 4 判断访问的状态码 */
                if (statusCode != 200) {
                    System.err.println("Method failed: "
                            + getMethod.getStatusLine());
                }
                /* 5 处理 HTTP 响应内容 */
                // HTTP响应头部信息,这里简单打印
                Header[] headers = getMethod.getResponseHeaders();
                for (Header h : headers)
                    System.out.println(h.getName() + "~~" + h.getValue());
                // 读取 HTTP 响应内容,这里简单打印网页内容
                byte[] responseBody = getMethod.getResponseBody();// 读取为字节数组(保持原格式)
                System.out.println("byte:" + new String(responseBody));
                // // 读取为 InputStream,在网页内容数据量大时候推荐使用
                // InputStream resStream = getMethod.getResponseBodyAsStream();//
                // BufferedReader br = new BufferedReader(new InputStreamReader(
                // resStream));
                // StringBuffer resBuffer = new StringBuffer();
                // String resTemp = "";
                // while ((resTemp = br.readLine()) != null) {
                // resBuffer.append(resTemp);
                // }
                // resStream.close();
                // System.out.println("resBuffer:"+resBuffer.toString());
            } catch (HttpException e) {
                // 发生致命的异常,可能是协议不对或者返回的内容有问题
                System.out.println("Please check your provided http address!");
                e.printStackTrace();
            } catch (IOException e) {
                // 发生网络异常
                e.printStackTrace();
            } finally {
                // 释放连接
                getMethod.releaseConnection();
            }
        }
  • 相关阅读:
    CDZSC_2015寒假新人(4)——搜索 A
    第一次组队赛---2010年全国大学生程序设计邀请赛(福州)L
    ZSC新生赛 沼跃鱼早已看穿了一切
    ZSC新生赛 聪明的员工
    CDZSC_2015寒假新人(1)——基础 I
    Linux 系统时间和硬件时间
    Python 深浅复制
    Python 函数内省
    Python 函数参数
    Python 可调用对象
  • 原文地址:https://www.cnblogs.com/i80386/p/2848735.html
Copyright © 2011-2022 走看看