首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

httpclient常用基本抓取类(4)

httpclient常用基本抓取类(4)

public String crawlPageContentByPost(String url, String pram, String encode)
            throws ClientProtocolException, IOException {
        String content = "";
        try {
            content = doPostByGoagent(url, pram, encode);
            if (content == null || content.equals("")) {
                content = doPostByGoagent(url, pram, encode);
                // System.out.println("启用公司代理");
                // content = postByCompanyProxy(url, pram, encode);
                // if (content == null || content.equals("")) {
                // System.out.println("5秒后启用本机");
                // Thread.sleep(5000);
                // content = doPost(url, pram, encode);
                // }
            }
        } catch (Exception e) {
            try {
                content = doPostByGoagent(url, pram, encode);
                // System.out.println("goagent连接失败,启用公司代理");
                // content = postByCompanyProxy(url, pram, encode);
                // if (content == null || content.equals("")) {
                // System.out.println("公司代理连接失败,启用本机");
                // content = doPost(url, pram, encode);
                // }
            } catch (Exception e2) {
                try {
                    content = doPostByGoagent(url, pram, encode);
                    // e2.printStackTrace();
                    // content = postByCompanyProxy(url, pram, encode);
                    // System.out.println("公司代理连接失败,启用本机");
                    // content = doPost(url, pram, encode);
                } catch (Exception e3) {
                    e3.printStackTrace();
                }

            }

        }

        return content;
    }

    private String doPostByGoagent(String url, String parm, String encode)
            throws ClientProtocolException, IOException {
        String result = "";
        HttpPost httpRequst = new HttpPost(url);// 创建HttpPost对象
        HttpHost proxy = new HttpHost("127.0.0.1", 8087, null);
        StringEntity entity = new StringEntity(parm);
        entity.setContentType("application/x-www-form-urlencoded");
        entity.setContentEncoding(encode);
        httpRequst.setEntity(entity);
        DefaultHttpClient httpClient = new DefaultHttpClient();
        httpClient.getParams().setParameter(
                CoreConnectionPNames.CONNECTION_TIMEOUT, 8000);// 连接时间20s
        httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,
                8000);// 数据传输时间60s
        httpClient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY,
                proxy);
        HttpResponse httpResponse = httpClient.execute(httpRequst);
        // System.out.println(httpResponse.getStatusLine().getStatusCode());
        if (httpResponse.getStatusLine().getStatusCode() == 200) {
            HttpEntity httpEntity = httpResponse.getEntity();
            if (httpEntity.getContentEncoding() != null) {
                if ("gzip".equalsIgnoreCase(httpEntity.getContentEncoding()
                        .getValue())) {
                    httpEntity = new GzipDecompressingEntity(httpEntity);
                } else if ("deflate".equalsIgnoreCase(httpEntity
                        .getContentEncoding().getValue())) {
                    httpEntity = new DeflateDecompressingEntity(httpEntity);
                }
            }
            result = enCodetoString(httpEntity, encode);// 取出应答字符串
        }
        return result;
    }
返回列表