• 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();
            }
        }
    }
  • 相关阅读:
    As3支持的Html标签一览
    SharpPcap 3.4使用范例
    十六章:构建自定义集合(Part 2)
    十七章:反射、特性和动态编程(Part 1)
    十六章:构建自定义集合(Part 1)
    Implementing Finalize and Dispose to Clean Up Unmanaged Resources
    HDU1711Number Sequence(KMP)
    HDU2087剪花布条(KMP)
    HDU1671Phone List (trie树)
    HDU 1075 What are you talking about(trie树)
  • 原文地址:https://www.cnblogs.com/scrat/p/3456731.html
Copyright © 2020-2023  润新知