HttpClient

了解get和post区别,参考这里

无非是代码模拟人工点击浏览器

3个步骤

  1. 打开浏览器

      CloseableHttpClient httpClient = HttpClients.createDefault();
    
  2. 输入网址

     HttpGet httpGet = new HttpGet("网址....");
    
  3. 回车,返回界面

     CloseableHttpResponse  response = httpClient.execute(httpGet);
    

Get无参

查看百度首页内容

public class HttpTest{public static void main(String[] args) {//模拟打开浏览器CloseableHttpClient httpClient = HttpClients.createDefault();//创建GET请求,设置URL访问地址HttpGet httpGet = new HttpGet("http://www.baidu.com");CloseableHttpResponse response=null;try {//使用HttpClient发起请求,获取responseresponse = httpClient.execute(httpGet);//解析响应if(response!=null){//输出getStatusLine()// 成功 HTTP/1.1 200 OK// 失败 HTTP/1.1 403 Forbidden//获取状态码,如 200 或者403System.out.println(response.getStatusLine().getStatusCode());HttpEntity entity = response.getEntity();//实体String content = EntityUtils.toString(entity, "utf8");//把实体转为stringSystem.out.println(content);}} catch (IOException e) {e.printStackTrace();}finally {//关闭,节省资源try {response.close();} catch (IOException e) {e.printStackTrace();}finally {try {httpClient.close();} catch (IOException e) {e.printStackTrace();}}}}
}

Get有参

输入网址也有参数啊,不能光

http://www.baidu.com 啊

比如访问百度百科,这是有参数的

  https://baike.baidu.com/item/0/11071655?fr=aladdin

由于httpGet的参数也能是URI,而URI的创建需要URIbuilder,所以

public class HttpTest{public static void main(String[] args) throws URISyntaxException {//模拟打开浏览器CloseableHttpClient httpClient = HttpClients.createDefault();//构造带参数的地址//https://baike.baidu.com/item/0/11071655?fr=aladdinURIBuilder uriBuilder = new URIBuilder("https://baike.baidu.com/item/0/11071655");uriBuilder.setParameter("fr","aladdin");//参数//创建GET请求,设置URI访问地址HttpGet httpGet = new HttpGet(uriBuilder.build());CloseableHttpResponse response=null;try {//使用HttpClient发起请求,获取responseresponse = httpClient.execute(httpGet);//解析响应if(response!=null){System.out.println(response.getStatusLine());HttpEntity entity = response.getEntity();String content = EntityUtils.toString(entity, "utf8");System.out.println(content);}} catch (IOException e) {e.printStackTrace();}finally {//关闭responsetry {response.close();} catch (IOException e) {e.printStackTrace();}finally {try {httpClient.close();} catch (IOException e) {e.printStackTrace();}}}}
}

无参post

和无参get差不多,只需改变一行

HttpGet httpGet = new HttpGet("网址....");
改为
HttpPost httpPost = new HttpPost("网址....");

带参post

public class HttpTest{public static void main(String[] args) throws URISyntaxException, UnsupportedEncodingException {//模拟打开浏览器CloseableHttpClient httpClient = HttpClients.createDefault();//https://baike.baidu.com/item/0/11071655?fr=aladdinHttpPost httpPost = new HttpPost("https://baike.baidu.com/item/0/11071655");//声明list集合,封装表单的中的参数ArrayList<NameValuePair> params = new ArrayList<>();params.add(new BasicNameValuePair("fr","aladdin"));//创建表单的Entity对象,参数为表单数据和编码UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(params, "utf8");//将表单Entity对象加入到post请求中httpPost.setEntity(formEntity);CloseableHttpResponse response=null;try {//使用HttpClient发起请求,获取responseresponse = httpClient.execute(httpPost);//解析响应if(response!=null){System.out.println(response.getStatusLine());HttpEntity entity = response.getEntity();String content = EntityUtils.toString(entity, "utf8");System.out.println(content);}} catch (IOException e) {e.printStackTrace();}finally {//关闭responsetry {response.close();} catch (IOException e) {e.printStackTrace();}finally {try {httpClient.close();} catch (IOException e) {e.printStackTrace();}}}}
}));

HttpClient post 与get相关推荐

  1. java爬取验证码图片_JAVA HttpClient实现页面信息抓取(获取图片验证码并传入cookie实现信息获取)...

    JAVA HttpClient实现页面信息抓取(获取图片验证码并传入cookie实现信息获取) 发布时间:2018-05-18 16:41, 浏览次数:632 , 标签: JAVA HttpClien ...

  2. httpclient工具类,post请求发送json字符串参数,中文乱码处理

    在使用httpclient发送post请求的时候,接收端中文乱码问题解决. 正文: 我们都知道,一般情况下使用post请求是不会出现中文乱码的.可是在使用httpclient发送post请求报文含中文 ...

  3. 关于HttpClient上传中文乱码的解决办法

    使用过HttpClient的人都知道可以通过addTextBody方法来添加要上传的文本信息,但是,如果要上传中文的话,或还有中文名称的文件会出现乱码的问题,解决办法其实很简单: 第一步:设置Mult ...

  4. java url json字符串_使用HttpClient将URL中的JSON查询字符串发送到Web服务(Java)

    我有一个我建立的Web服务...我现在要做的是发送一个简单的请求,其中包含一个从Tapestry Web应用程序到该Web服务的json查询字符串.我四处搜索,大多数人都说使用Apache HttpC ...

  5. java rest httpclient_java http请求建议使用webClient,少用RestTemplate,不用HttpClient

    简介: webClient:是Spring-webFlux包下的,非阻塞响应,最低java8支持函数式编程,性能好 RestTemplate:是Spring-webmvc包下的,满足RestFul原则 ...

  6. 【请求后台接口】30秒完成Angular10精简版HttpClient请求服务搭建

    ng g s services/http app.module.ts ... @NgModule({declarations: [...],imports: [...HttpClientModule, ...

  7. Angular 4+ HttpClient

    个人博客迁移至 http://www.sulishibaobei.com  处: 这篇,算是上一篇Angular 4+ Http的后续: Angular 4.3.0-rc.0 版本已经发布?.在这个版 ...

  8. HttpClient学习

    HttpClient学习 (1)下面列举几个主要的Http相关概念的类 类名 描述 HttpClient 建立请求客户端 HttpGet 代表请求方法,类似的还有HttpHead, HttpPost, ...

  9. 漫谈Httpclient

    引用地址: http://hc.apache.org/httpclient-3.x/ End of life The Commons HttpClient project is now end of ...

  10. 使用HttpClient实现跨服务图片下载

    需求: 由于web系统存放图片的文件夹路径和erp系统存放图片的文件夹路径不一样 所以 web系统文件上传的文件要拷贝到erp对应的文件夹 思路: 在erp中访问图片接口的时候,如果图片不存在,则调w ...

最新文章

  1. 如何进行相机的绝对位置估计?
  2. 160个Crackme003之4C大法详解
  3. Visio 方向工程连接 Oracle 10G
  4. (LeetCode 83)Remove Duplicates from Sorted Lists
  5. oracle查询本身字符集,Oracle字符集问题总结
  6. 半导体重磅!英飞凌宣布100亿美元收购赛普拉斯
  7. 复杂多目录的Makefile模板及示例
  8. 从win到linux的小问题集锦(不断更新中)
  9. Unity场景中脚本的Update和LateUpdate函数执行的先后问题
  10. 蓝桥杯——2015年C++A组第3题:奇妙的数字【枚举】
  11. 【C语言程序】鸡兔同笼问题
  12. 2021高考俄语成绩查询,2021年俄语专业大学排名及分数线【统计表】
  13. php-fpm的几种重启方式
  14. 首个实时全球空中交通监控系统在北大西洋上空全面投入运行和试用
  15. html在线预览ppt excel,JavaScript实现Word、Excel、PPT在线预览
  16. 全国计算机四级之网络工程师知识点(五)
  17. 医学图像质量评价方法SSIM
  18. 算法习题集 - Miscellaneous
  19. 令人拍案叫绝的15个二维码
  20. 2021年西安二手房价格

热门文章

  1. 栈与队列1——设计getMin功能的栈
  2. Js 向json对象中添加新元素
  3. 堆、栈、方法区、静态代码块---Java
  4. 2007年100款最佳安全工具谱
  5. 爬虫实战--爬取1000位小姐姐照片,刷新你三观颜值!
  6. python编程面向对象很简单,只需要掌握这几点
  7. html5 strongeaseinout,Canvas開發庫封裝
  8. PHP遍历用blade标签表示,php-Laravel Blade {{$variable或’Default Text’}}无法使用网址
  9. 倒排索引原理_拜托,面试请不要再问我分布式搜索引擎的架构原理!
  10. matlab矩阵运算_MATLAB基础学习之三种基本运算