• Cannot instantiate the type HttpClient问题


    看自己动手写爬虫,没想到一上来就跪了。

    里面提到用的jar包是apache的http客户端开源项目---HttpClient

    就去官网下载了一个版本4.3

    当按书上代码敲时

    HttpClient httpclient = new HttpClient();

    敲完这句,就给跪了

    提示Cannot instantiate the type HttpClient,

    google 了下,在stackoverflow上面说是应该

    HttpClient httpclient = new DefaultHttpClient();

    这样写,不过得先import org.apache.http.impl.client.DefaultHttpClient;

    试了一下。。。果然可以,但是后面的GetMethod啥的都有,

    最后才特么发现从4.×版本后,它的用法就变了不能这么使用了

    给个官网示例看看就知道咋回事了

    package spider;
    
    import java.io.IOException;
    
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.ResponseHandler;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.util.EntityUtils;
    
    public class Spider {
        public static void main(String[] args) throws Exception{
            CloseableHttpClient httpclient = HttpClients.createDefault();
            try{
                String url = "http://www.baidu.com";
                HttpGet httpGet = new HttpGet(url);
                System.out.println("executing request " + httpGet.getURI());
                
                ResponseHandler<String> responseHandler = new ResponseHandler<String>(){
                    public String handleResponse(final HttpResponse response) throws ClientProtocolException,IOException{
                        int status = response.getStatusLine().getStatusCode();
                        if (status >= 200 && status < 300){
                            HttpEntity entity = response.getEntity();
                            return entity !=null ? EntityUtils.toString(entity) : null;
                        }else{
                            throw new ClientProtocolException("Unexpected response status: " + status);
                        }
                    }
                };
                String responseBody = httpclient.execute(httpGet,responseHandler);
                System.out.println("-------------------------------------------");
                System.out.println(responseBody);
                System.out.println("-------------------------------------------");
            }finally{
                httpclient.close();
            }
        }
    }
  • 相关阅读:
    tomcat8.5配置redis实现session共享(tomcat-redis-session-manager-master)
    HDU4292(KB11-H 最大流)
    HDU4280(KB11-G 最大流)
    POJ1149(最大流)
    POJ3281(KB11-B 最大流)
    POJ3436(KB11-A 最大流)
    Codeforces841B
    Codeforces841A
    HDU2255(KB10-K 二分图最大权匹配)
    HDU1281(KB10-D 二分图最大匹配)
  • 原文地址:https://www.cnblogs.com/scrat/p/3456731.html
Copyright © 2020-2023  润新知