HttpClient入门一

HttpClient是一个实现了Http协议的功能强大的编程工具包。

要使用HttpClient,通常需要以下几部:

1、常见一个HttpClient实例

2、创建一个get或者post方法

3、告诉HttpClient去执行获取的方法

4、读取服务器的响应

5、释放连接

6、处理响应的内容

下面这个实例就实现了一个从指定网页去读取网页内容的代码。

package com.httpclient;

import java.io.IOException;

import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
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 Test01 {

    public static void main(String[] args) {
        
        /**
         * 使用HttpClents的静态方法createDefault()创建一个可关闭的Http客户端
         * 这个client中有很多重载的execute方法,可以用来执行请求
         */
        CloseableHttpClient client= HttpClients.createDefault();
        
        /**
         * 创建一个对指定地址的get请求,
         * 这个请求在执行之后,将会在response中返回一个entity
         * 在org.apache.http.client.methods包中提供了
         * 很多http方法,比如get,post,head之类的
         */
        HttpGet get=new HttpGet("http://www.eastmoney.com/");
        CloseableHttpResponse response=null;
        try {
            /**
             * 使用默认的上下文执行请求
             * 返回request的response
             */
            response=client.execute(get);
            
            //打印出返回的状态栏
            System.out.println(response.getStatusLine());
            
            //从response中获取entity
            HttpEntity entity=response.getEntity();
            
            /**
             * 利用EntityUtils这个工具包中的toString这个静态方法
             * 可以轻松的获取entity中的内容,并且是以String类型返回
             */
            System.out.println(EntityUtils.toString(entity));
            
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally {
            try {
                response.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}
View Code

上面的例子是通过get方法请求的,当然也可以通过post方法来实现。

原文地址:https://www.cnblogs.com/zerotomax/p/7226153.html