用于发送 HTTP 请求和接收来自通过 URI 确认的资源的 HTTP 响应

使用起点中文网测试

地址:https://www.qidian.com/all

导入HttpClient包

    <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.3</version></dependency>

1.GET请求

//使用方式可分为以下5个步骤
//创建HttpClient对象//创建HttpGet请求//发起请求//判断响应码是不是正常响应也就是StatusCode是不是200//释放连接

具体实现如下


public String HttpGet()throw Exception{//创建HttpClient对象CloseableHttpClient httpClient = HttpClients.createDefault();//创建HttpGet请求HttpGet Get = new HttpGet("https://www.qidian.com/all");//发起请求,使用CloseableHttpResponse 接收返回CloseableHttpResponse response = null;try {        response = httpClient.execute(Get);//判断响应码是不是正常响应也就是StatusCode是不是200if (response.getStatusLine().getStatusCode() == 200) {String content = EntityUtils.toString(response.getEntity(), "UTF-8");//打印数据长度返回页面信息System.out.println(content);return content;}} catch (Exception e) {e.printStackTrace();}finally{//释放连接if (response == null) {try {response.close();} catch (IOException e) {e.printStackTrace();}//关闭HttpClienthttpClient.close();}return "";
}

2.GET带参数请求

使用方式和不带参的方式基本一致

地址:

//url = https://www.qidian.com/all?chanId=21&subCateId=8public String HttpGet()throw Exception{//创建HttpClient对象CloseableHttpClient httpClient = HttpClients.createDefault();//创建HttpGet请求HttpGet Get = new HttpGet("https://www.qidian.com/all?chanId=21&subCateId=8");//发起请求,使用CloseableHttpResponse 接收返回CloseableHttpResponse response = null;try {        response = httpClient.execute(Get);//判断响应码是不是正常响应也就是StatusCode是不是200if (response.getStatusLine().getStatusCode() == 200) {String content = EntityUtils.toString(response.getEntity(), "UTF-8");//打印数据长度返回页面信息System.out.println(content);return content;}} catch (Exception e) {e.printStackTrace();}finally{//释放连接if (response == null) {try {response.close();} catch (IOException e) {e.printStackTrace();}//关闭HttpClienthttpClient.close();}return "";
}

3.POST请求

使用方式类似于GET请求,不过创建的是HttpPost对象:

//url = https://www.qidian.com/allpublic String HttpGet()throw Exception{//创建HttpClient对象CloseableHttpClient httpClient = HttpClients.createDefault();//创建Post请求HttpPost Post = new HttpPost("https://www.qidian.com/all");//发起请求,使用CloseableHttpResponse 接收返回CloseableHttpResponse response = null;try {        response = httpClient.execute(Post);//判断响应码是不是正常响应也就是StatusCode是不是200if (response.getStatusLine().getStatusCode() == 200) {String content = EntityUtils.toString(response.getEntity(), "UTF-8");//打印数据长度返回页面信息System.out.println(content);return content;}} catch (Exception e) {e.printStackTrace();}finally{//释放连接if (response == null) {try {response.close();} catch (IOException e) {e.printStackTrace();}//关闭HttpClienthttpClient.close();}return "";
}

4.POST带参数请求

参数传递方式有点特殊,参数放到表单里进行提交

//url = https://www.qidian.com/all?chanId=21&subCateId=8public String HttpGet()throw Exception{//创建HttpClient对象CloseableHttpClient httpClient = HttpClients.createDefault();//创建Post请求HttpPost Post = new HttpPost("https://www.qidian.com/all");//声明存放参数的集合,多个参数可以在后边继续.add()List<NameValuePair> params = new ArrayList<NameValuePair>();params.add(new BasicNameValuePair("chanId", "21")).add(new  BasicNameValuePair("subCateId", "8"));//创建表单数据EntityUrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(params, "UTF-8");//设置表单Entity到httpPost请求对象中Post.setEntity(formEntity);//发起请求,使用CloseableHttpResponse 接收返回CloseableHttpResponse response = null;try {        response = httpClient.execute(Post);//判断响应码是不是正常响应也就是StatusCode是不是200if (response.getStatusLine().getStatusCode() == 200) {String content = EntityUtils.toString(response.getEntity(), "UTF-8");//打印数据长度返回页面信息System.out.println(content);return content;}} catch (Exception e) {e.printStackTrace();}finally{//释放连接if (response == null) {try {response.close();} catch (IOException e) {e.printStackTrace();}//关闭HttpClienthttpClient.close();}return "";
}

java爬虫学习——第一节 HttpClient使用相关推荐

  1. Java爬虫(二)-- httpClient模拟Http请求+jsoup页面解析

    博客 学院 下载 GitChat TinyMind 论坛 APP 问答 商城 VIP会员 活动 招聘 ITeye 写博客 发Chat 传资源 登录注册 原 Java爬虫(二)-- httpClient ...

  2. java基础学习 --- 第二节 变量、数据类型和运算符

    java基础学习 - 第二节 变量.数据类型和运算符 一.变量 1.变量就是会发生改变的数据,程序运行时,这些数据以变量的形式被保存到计算机的内存中.如图 2.使用变量的步骤:     声明变量 - ...

  3. ng深度学习第一节代码总结:深层神经网络识别猫咪图片

    之前在网易云课堂上看完了ng深度学习第一节课四周的内容,但是没有代码实践,总觉得学的很虚,于是去了coursera...... 这堂课的编程作业是从2层神经网络开始,过渡到n层的,我这里做了下整理,放 ...

  4. Java爬虫学习一一Jsoup爬取彼岸桌面分类下的图片

    最近在找工作,在这个过程中我感到很迷茫,投了很多简历,被查看的却很少,其中也有到现场去面试,结果也很不理想(╥╯^╰╥). 哈哈,跑题了,我在看之前所做的项目时,在我的收藏夹中看到了以前收藏的有关爬虫 ...

  5. java爬虫案例——SpringBoot使用HttpClient、Jsoup爬取京东手机数据

    文章目录 前言 一.准备工作 二.项目文件 1.项目依赖 2.项目配置文件 3.pojo 4.dao接口 5.service接口及其实现类 6.HttpClient封装工具类 7.爬取任务实现 8.启 ...

  6. Vue.js实战之系统学习第一节

    为什么叫系统学习呢?因为我以前接触过Vue.js,但是没学过它的原理,只是简单的使用了,使用的时候就觉得很好用,没有其他的什么感觉,但当我进入职场后,学习了很多的前端技术后,才发现这个技术的友好,被它 ...

  7. java爬虫学习_java网络爬虫基础学习(一)

    刚开始接触java爬虫,在这里是搜索网上做一些理论知识的总结 主要参考文章:gitchat 的java 网络爬虫基础入门,好像要付费,也不贵,感觉内容对新手很友好. 一.爬虫介绍 网络爬虫是一个自动提 ...

  8. java 爬虫学习 httpclient使用

    使用httpclient 模拟游览器请求 maven 依赖 <dependency><groupId>org.apache.httpcomponents</groupId ...

  9. java ant 安装成功_Ant学习---第一节:Ant安装和简单使用

    一.下载 ant 插件,路径如下: 二.安装 ant 插件,解压下载下来的 ant 插件,配置环境变量(最好系统环境变量),如下: ANT_HOME:D:\learn_tool\apache-ant- ...

最新文章

  1. Java基础部分笔记----------网络编程
  2. 2016年计算机视觉和图像处理相关的国际会议一览表
  3. 博客统计:腾讯分析这些数据哪儿来的?
  4. ARM平台YUV转RGB888(转)
  5. Oracle-批量修改语句及相关知识点
  6. c++ 命名规则 private_【译】代码中如何写出更有意义的命名
  7. ★教师工资为什么这么低?
  8. 资源下载| 深度学习Pytoch1.0如何玩?这一门含900页ppt和代码实例的深度学习课程带你飞
  9. java.io.file()_Java IO File (一)
  10. [已解决] 日常开发中禁用Tomcat自动重启
  11. Elasticsearch 写入优化记录,从3000到8000/s
  12. Android内存优化11 内存泄漏常见情况2 线程持久化
  13. 内联函数与宏定义的区别
  14. 短信验证-SMSSDk(Mob开发平台 )
  15. 什么是GPS,GPS技术主要有哪些特点?
  16. C语言的那些小秘密之异常处理
  17. oracle dba 培训教程
  18. 飞猪双11成绩单背后 藏了什么玄机
  19. 守望者的逃离(贪心,动态规划)
  20. anaconda配置h5py===2.10.0

热门文章

  1. 2021宿迁所有高中高考成绩查询,宿迁市“赫赫有名”的4所高中,高考成绩说话,不愧是211后援团...
  2. Spring -Spring的 DI - 依赖注入的 使用学习
  3. linux 基准测试,linux 性能测试之基准测试用具
  4. 手机密码用计算机怎么解锁,手机忘记开机密码怎么办,有这四招1分钟就搞定...
  5. 交换机端口假死(err-disable)解决方法
  6. 计算机名无法开机,电脑无法开机提示0xc00000bb错误
  7. 信号隔离器在PLC/DCS控制系统的应用
  8. python英文字符串单词个数统计_Python实现统计英文单词个数及字符串分割代码
  9. 18岁表弟,寒假接了一个五百的外包....
  10. 计算机网络课题目,计算机网络课程学论文选题 计算机网络课程论文题目怎么取...