HtttpClient的相关实例

xiaoxiao2021-02-28  47

一、理解: 1.定义: HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。简单的说:HttpClient是支持Http协议的客户端编程工具包,能够用来得到某个网页的源码 2.创建步骤: a.创建HttpClient对象 b. 创建请求方法的实例,并指定请求URL。Get请求对应的是HttpGet,post请求对应的是HttpPOST。 c.用HttpClient对象中的execute方法来执行b步骤中的请求方法的实例用来发送请求 d.获得相应内容并打印出来 e.关闭连接,释放资源。无论执行方法是否成功,都必须执行执行此步骤

二、实例

//使用get方法来得到所提供的的URL中的网页源码 public static void getMethod(String url) throws Exception { //创建默认的HttpClient实例 CloseableHttpClient httpclient = HttpClients.createDefault(); try { //创建请求方法的实例,并指定请求URL,此条语句发送的是Get请求 HttpGet httpGet = new HttpGet(url); //execute()发送请求 CloseableHttpResponse response = httpclient.execute(httpGet); try { //打印响应状态 System.out.println(response.getStatusLine()); //获得服务器的响应内容(响应实体) HttpEntity entity = response.getEntity(); //打印响应内容 System.out.println(EntityUtils.toString(entity)); } finally { response.close(); } } finally { httpclient.close(); //关闭连接,释放资源 } } //从网络上下载一张图片 public static boolean download(String url, String fileName) { try { Content con1 = Request.Get(url).execute().returnContent(); File file = new File(fileName); //写文件 FileOutputStream outputStream = new FileOutputStream(file); InputStream inputStream = con1.asStream(); //读文件 //以每次读取1024个字节流的形式来读取出来,并写入fileName中(其实就是一个复制的过程) byte b[] = new byte[1024]; int j = 0; while ((j = inputStream.read(b)) != -1) { outputStream.write(b, 0, j); } outputStream.flush(); //及时将复制的内容发送出去 outputStream.close(); } catch (ClientProtocolException e) { e.printStackTrace(); return false; } catch (IOException e) { e.printStackTrace(); return false; } return true; } //主函数测试 public static void main(String[] args) throws Exception { //获得Baidu首页的源码 getMethod("http://www.baidu.com"); //不用调用方法,直接获得百度首页源码,更为简洁、方便 Content content = Request.Get("http://www.baidu.com").execute().returnContent(); System.out.print(content.toString()); //下载网络上面的图片 String url = "https://img3.doubanio.com/lpic/s28668834.jpg"; download(url, "D://njupt0817.jpg"); //指定存放地点并重置名字 }
转载请注明原文地址: https://www.6miu.com/read-600390.html

最新回复(0)