HttpClient 学习笔记--源自技术

java学习笔记 爬虫 ( httpclient 4.5.6)一 java学习笔记 httpclient 4.5.6 第一天学习httpclient的原因httpclient的安装httpclient的下载jar包的使用第一次码httpclient第一个难题:书上的版本与现在的差别很大第二个难题:cannot instantiate the type httpclient接下来给粗官方的案例 学习httpclient的原因 总是想学学爬虫,看人家火车抢票秀到... 阅读详情
 HttpClient 是 Apache提供的一个HTTP连接工具包

  网址:http://hc.apache.org/

  4.5jar包下载:httpclient 4.5

  4.5src包下载:httpclient 4.5-src


[java]  view plain  copy
  1.   /*基本的get请求*/  
  2.   public final static void basicGet() throws ClientProtocolException, IOException{  
  3.       CloseableHttpClient httpclient = HttpClients.createDefault();  
  4.       try {  
  5.           HttpGet httpget = new HttpGet("http://www.weather.com.cn/data/sk/101010100.html");  
  6.           CloseableHttpResponse response = httpclient.execute(httpget);  
  7.           try {  
  8.             StatusLine statusLine = response.getStatusLine();  
  9.             System.out.println(statusLine);  
  10.               
  11.             HttpEntity resEntity = response.getEntity();  
  12.             InputStream content = resEntity.getContent();  
  13.             InputStreamReader reader = new InputStreamReader(content);  
  14.             BufferedReader bufferedReader = new BufferedReader(reader);  
  15.             String lineTxt = null;  
  16.               while((lineTxt = bufferedReader.readLine()) != null){  
  17.                   System.out.println(lineTxt);  
  18.               }  
  19.               //调用中止请求对象  
  20.               httpget.abort();  
  21.           } finally {  
  22.               response.close();  
  23.           }  
  24.       } finally {  
  25.           httpclient.close();  
  26.       }  
  27.   }  
  28.     
  29.   /*基本的Post请求*/  
  30.   public final static void basicPost() throws ClientProtocolException, IOException{  
  31.     CloseableHttpClient httpclient = HttpClients.createDefault();  
  32.     try {  
  33.         HttpPost httppost = new HttpPost("http://www.apache.org/");  
  34.         CloseableHttpResponse response = httpclient.execute(httppost);  
  35.         try {  
  36.             StatusLine statusLine = response.getStatusLine();  
  37.             System.out.println(statusLine);  
  38.               
  39.             HttpEntity resEntity = response.getEntity();  
  40.             InputStream content = resEntity.getContent();  
  41.             InputStreamReader reader = new InputStreamReader(content);  
  42.             BufferedReader bufferedReader = new BufferedReader(reader);  
  43.             String lineTxt = null;  
  44.             while((lineTxt = bufferedReader.readLine()) != null){  
  45.                 System.out.println(lineTxt);  
  46.             }  
  47.               
  48.             //调用中止请求对象  
  49.             httppost.abort();  
  50.         } finally {  
  51.             response.close();  
  52.         }  
  53.     } finally {  
  54.         httpclient.close();  
  55.     }  
  56.   }  
  57.     
  58.   /*带参数的Post请求*/  
  59.   public final static void parameterPost() throws IOException{  
  60.     CloseableHttpClient httpClient = HttpClients.createDefault();  
  61.     try {  
  62.         HttpPost httpPost = new HttpPost("http://www.imooc.com/user/login");  
  63.         List <NameValuePair> nvps = new ArrayList <NameValuePair>();  
  64.         nvps.add(new BasicNameValuePair("username", "u"));  
  65.         nvps.add(new BasicNameValuePair("password", "p"));  
  66.         httpPost.setEntity(new UrlEncodedFormEntity(nvps));  
  67.         CloseableHttpResponse response = httpClient.execute(httpPost);  
  68.     try {  
  69.         System.out.println(response.getStatusLine());  
  70.         System.out.println("Response content: " + EntityUtils.toString(response.getEntity(), "UTF-8"));   
  71.         //调用中止请求对象  
  72.         httpPost.abort();  
  73.     }finally{  
  74.         response.close();  
  75.     }  
  76. }finally{  
  77.     httpClient.close();  
  78. }  
  79.   }  
  80.     
  81.   /* 上传文件 
  82.    * 示例:ClientMultipartFormPost.java 
  83.    * */  
  84.   public final static void upload() throws IOException{  
  85.     CloseableHttpClient httpClient = HttpClients.createDefault();  
  86.     try{  
  87.         HttpPost httpPost = new HttpPost("http://image.baidu.com/pictureup/uploadshitu?fr=flash&fm=index&pos=upload");  
  88.         FileBody bin = new FileBody(new File("C:\\Users\\Administrator\\Downloads\\123.png"));  
  89.           
  90.         StringBody comment = new StringBody("A binary file of some kind", ContentType.TEXT_PLAIN);  
  91.         HttpEntity reqEntity = MultipartEntityBuilder.create().addPart("fileName", bin).addPart("comment", comment).build();  
  92.         httpPost.setEntity(reqEntity);  
  93.         CloseableHttpResponse response = httpClient.execute(httpPost);  
  94.         try {  
  95.             HttpEntity resEntity = response.getEntity();  
  96.               if (resEntity != null) {  
  97.                 System.out.println(response.getStatusLine());  
  98.                   System.out.println("Response content length: " + resEntity.getContentLength());  
  99.               }  
  100.               EntityUtils.consume(resEntity);  
  101.     } finally{  
  102.         response.close();  
  103.     }  
  104.     }finally{  
  105.         httpClient.close();  
  106.     }  
  107.   }  
  108.     
  109.   /* SSL 
  110.    * 示例:ClientCustomSSL.java 
  111.    * */  
  112.   public final static void ssl() throws Exception {  
  113.     // Trust own CA and all self-signed certs  
  114.       SSLContext sslcontext = SSLContexts.custom()  
  115.               .loadTrustMaterial(new File("my.keystore"), "nopassword".toCharArray(),  
  116.                       new TrustSelfSignedStrategy())  
  117.               .build();  
  118.       // Allow TLSv1 protocol only  
  119.       SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(  
  120.               sslcontext,  
  121.               new String[] { "TLSv1" },  
  122.               null,  
  123.               SSLConnectionSocketFactory.getDefaultHostnameVerifier());  
  124.       CloseableHttpClient httpclient = HttpClients.custom()  
  125.               .setSSLSocketFactory(sslsf)  
  126.               .build();  
  127.       try {  
  128.   
  129.           HttpGet httpget = new HttpGet("https://localhost/");  
  130.   
  131.           System.out.println("executing request " + httpget.getRequestLine());  
  132.   
  133.           CloseableHttpResponse response = httpclient.execute(httpget);  
  134.           try {  
  135.               HttpEntity entity = response.getEntity();  
  136.   
  137.               System.out.println("----------------------------------------");  
  138.               System.out.println(response.getStatusLine());  
  139.               EntityUtils.consume(entity);  
  140.           } finally {  
  141.               response.close();  
  142.           }  
  143.       } finally {  
  144.           httpclient.close();  
  145.       }  
  146.   }  
  147.     
  148.   /* HTTP上下文 
  149.    * 示例:ClientCustomContext.java 
  150.    **/  
  151.   public final static void context() throws Exception {  
  152.     CloseableHttpClient httpclient = HttpClients.createDefault();  
  153.       try {  
  154.           // 创建一个cookie存储的实例  
  155.           CookieStore cookieStore = new BasicCookieStore();  
  156.             
  157.           // 创建本地HTTP上下文  
  158.           HttpClientContext localContext = HttpClientContext.create();  
  159.           // 绑定定义cookie存储到上下文  
  160.           localContext.setCookieStore(cookieStore);  
  161.   
  162.           HttpGet httpget = new HttpGet("http://www.baidu.com/");  
  163.   
  164.           // 将上下文作为参数  
  165.           CloseableHttpResponse response = httpclient.execute(httpget, localContext);  
  166.           try {  
  167.               System.out.println("----------------------------------------");  
  168.               System.out.println(response.getStatusLine());  
  169.               List<Cookie> cookies = cookieStore.getCookies();  
  170.               for (int i = 0; i < cookies.size(); i++) {  
  171.                   System.out.println("Local cookie: " + cookies.get(i));  
  172.               }  
  173.               EntityUtils.consume(response.getEntity());  
  174.           } finally {  
  175.               response.close();  
  176.           }  
  177.       } finally {  
  178.           httpclient.close();  
  179.       }  
  180.   }  


推荐博文

博文1

博文2

Android学习笔记:HttpClient和HttpURLConnection 在Android开发中网络请求是最常用的操作之一,Android SDK中对HTTP(超文本传输协议)也提供了很好的支持,这里包括两种接口: (1)标准Java接口(java.NET)——HttpURLConnection,可以实现简单的基于URL请求、响应功能; (2)Apache接口(org.apache.http)——HttpClient,使用起来更方便更强大; 一、HttpClient H... 阅读详情

相关推荐

ESP8266开发之旅 网络篇⑨ HttpClient——ESP8266HTTPClient库的使用

1. 前言     在前面章节的博客中,博主介绍了ESP8266WiFi库 Tcp client的用法,并模拟了Http请求。但是,可以看出通过WiFiClient模拟Http请求,我们需要自己拼装Http请求协议,稍微不小心就很容易拼接错误。     那么有没有针对Http请求操作的库呢?答案肯定是有的,这就是博主本篇需要跟大家讲述的知识——ESP8266HTTPClient库。     请注意...

单片机菜鸟哥的博客 3万+

SSLContext 去除证书验证

private static Logger log = LoggerFactory.getLogger(CommonUtil.class);     private static final String APPLICATION_JSON = "application/json";     private static final String CONTENT_TYPE_TEXT_JSON

qq_35969767的博客 8053

【Boost5】Boost变换器的输入电容

节点的电流有3个,一个是来自电源输入的,由于我们把Vin看成理想电源以及线路的电感的存在,它可以近似看作是恒定的电流源Iin,一个是流向输入电容Cin的电流Icin,另外一个节点是电感L电流IL。电容电流波形在整个开关周期内的平均值为0,充电和放电在一个周期中各占1/2,在图中充电部分面积和放电部分面积相等,那么在充电或放电的电荷量Q=I*t,从图中可以看出,在一个周期内电容电流变化量是ΔIL,那在电容在充电1/2T周期中电流的变化量是1/2ΔIL。输入电容上的ESR也会随着电流变化,影响输入电压的变化。

qq_43416206的博客 3350

BAT大厂HTTPS+Nginx+Tomcat实现原理

1.先说一下HTTPS的实现原理 client向server发送请求https://baidu.com,然后连接到server的443端口,http连接到server的80端口。 2.服务端必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面,这套证书其实就是一对公钥和私钥。 3.传送证书 这...

lemo_ice的博客 471

深入解析LCD DRM驱动框架中的KMS与GEM机制

本文深入解析了Linux内核中DRM(Direct Rendering Manager)驱动框架的核心机制,重点剖析了KMS(内核模式设置)与GEM(图形执行管理器)的工作原理。KMS作为显示系统的总指挥,负责原子化地控制CRTC、Encoder、Plane等硬件资源,确保画面同步更新,避免撕裂;GEM则作为显存大管家,通过DUMB和PRIME机制高效管理图形缓冲区的分配、共享与同步。文章结合RK3568平台实战,阐述了如何利用这些机制优化显示性能,并提供了调试技巧与常见问题解决方案。

weixin_29188997的博客 388

西门子S7-1200模拟量的使用

模块类型核心参数输入信号处理输出信号配置转换原理数值范围TIA Portal配置编程要点 转换公式: 输出模拟量: 五、校准与线性化 硬件校准非线性补偿抗干扰措施数字滤波温度控制压力监控流量调节信号异常精度不足实践操作参考文档项目案例借鉴博客

weixin_51020122的博客 4774

https校验

上述代码中,我们使用 `RestTemplate` 来发送 HTTPS 请求,并在其中启用 HTTPS 校验。然后,我们使用 `SSLConnectionSocketFactory` 和 `CloseableHttpClient` 来创建一个自定义的 HTTP 客户端,并将其注入到 `RestTemplate` 中。而 HTTPS 校验则是指在建立 HTTPS 连接时对证书进行验证,保证连接的安全性。这样,Spring Boot 就会自动启用 HTTPS 校验,并使用指定的证书进行验证。

2301_77162163的博客 873

融合ZILN损失与深度学习的LTV预测:从概率分布到精准营销决策

本文探讨了融合ZILN损失与深度学习的LTV预测方法,通过深度概率模型精准预测用户生命周期价值(LTV),优化营销决策。文章详细解析了ZILN损失函数的优势、模型架构设计要点及工程化落地实践,帮助企业在预算分配、用户分层等场景实现数据驱动的精准营销。

weixin_29093169的博客 308

HttpClient调用Https接口不校验证书方法

private CloseableHttpClient getSelfSignedClient() throws Exception { SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory( SSLContexts.custom().loadTrustMaterial(null, new TrustSe...

h363659487的博客 4562

Transformer实战(38)——视觉Transformer (Vision Transformer, ViT)

Transformer 在自然语言处理 (NLP) 领域取得了显著成就,在许多不同的任务中都表现出色。在本节中,我们将探索视觉 Transformer (Vision Transformer, ViT) 模型。正如 NLP 领域创建了多种模型一样,视觉领域也开发了多种模型,每种模型都为计算机视觉提供了新的视角。通过本节,将学习如何使用 ViT 等模型进行计算机视觉任务,了解基于 Transformer 的预训练计算机视觉模型的工作原理,以及如何针对特定任务进行微调。

盼小辉丶的博客 2907

网络攻防——kali操作系统基本使用

主要介绍如何搭建kali虚拟机,然后介绍了一个简单的攻击方法,切记,网络恶意攻击属于违法行为

weixin_46560512的博客 2万+

java 无需SSL验证的HTTP请求

java 无需SSL验证的HTTP请求,unable to find valid certification path to requested target

wm307118696的博客 1093

【100%通过率】华为od机试C卷【特殊的加密算法】Python 实现

有一种特殊的加密算法,明文为一段数字串,经过密码本查找转换,生成另一段密文数字串。规则如下1.明文为一段数字串由0-9组成2.密码本为数字0-9组成的二维数组3.需要按明文串的数字顺序在密码本里找到同样的数字串,密码本里的数字串是由相邻的单元格数字组成,上下和左右是相邻的,注意:对角线不相邻,同一个单元格的数字不能重复使用。

MISAYAONE的博客 5924

Apache Httpclient4.5学习笔记

很早之前写过一个java爬虫,用来抓某网站妹子图片的,用到了httpclient包,但是没有认真理解方法,只是为了实现功能而拼凑了一个东西出来,当然也还为了好玩。 现在不一样了,已经决定了不考研,而又处于大三这个开始有找工作的压力的情况下,自然要开始学习磨炼自己的技术。再加上学习安卓网络编程正好用到了httpclient包,于是就下载了官方手册仔细的学了一学,现在在这里写下来我对第一部分(Pos

ztgreenleaves的博客 1882

基于 ESP32-CAM 与 TinyML 的食堂餐盘自动识别与营养分析终端

【代码】基于 ESP32-CAM 与 TinyML 的食堂餐盘自动识别与营养分析终端。

weixin_42300449的博客 167

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

HttpClient技术

HttpClient 介绍简介坐标应用发送get请求不带参数发送get请求带参数发送post请求不带参数发送post请求带参数发送post请求带json类型参数HTTPClient工具类的使用工具类代码使用工具类案例 介绍 简介 HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、 功能丰富的支持 HTTP 协议的客户端编程工具包,...

时间静止 1688

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

HttpClient的学习笔记

HttpClient的学习笔记 1.定义 ​ HttpClient是Apache中的一个开源项目。它实现了HTTP标准中Client端的所有功能。使用它能够很容易地进行Http信息的传输。 ​ 使用传统JDK自带的URLConnnection是有些不方便的。所以我们使用HttpClient。HttpClient是Apache Jackarta common下的小项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。 2.特性 基于标准、纯

weixin_45866849的博客 2993

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

(HttpClient技术)(HttpClient入门)HttpClient使用详细介绍

1 前言        网络自动化操作,已经是网络发展中的一个重要趋势,很多复杂繁琐的操作,手动完成,得花费大量的时间,所以,网络自动化操作,就变得越来越普遍,越来越重要。很多应用,都可以使用网络自动化工具去完成,比如批量登陆签到,批量刷票,批量注册邮箱,批量查询用户余额等,那么网络自动化,在java中,应该用什么工具去开发呢,那么首先想到的应该就是HttpClient了,它是网络自动化操作方面,使

蝴蝶效应 9476

HTTPCLIENT源码分析

HTTPCLIENT源码分析 http是应用层的协议,在传输层使用tcpip协议,可以从其源码分析,中间层就是调用socket(基于lwip协议)编程加上http协议实现,下面看源码。想看看其源码的可以从下面目录下载。 下载目录:点击这里 路径在middleware/third_party/httpclient中。 源码分析 以前已经介绍过httpclient api的使用了,此处不在赘述,本文主...

qq_38240926的博客 1119

springboot :集成httpclient连接池技术

package com.xf.station.config; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; impor...

qq_25933249的博客 2377

远程调用技术-HttpClient

一、HttpClient 1.1、 前台系统访问后台接口的方式 两个系统间如何互相访问?两个tomcat上的项目如何互相访问 采用HttpClient实现跨系统的接口调用。 1.2、 什么是HttpClient 官网:http://hc.apache.org/index.html 现在也叫:HttpComponents ...

写的不好之处,请指教 3112

HttpClient学习笔记

1、简介         HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下...

我不想再熬夜了 648

122HttpClient学习笔记

HttpClient学习笔记 1 HttpClient简介 ​ HttpClient是Apache Jakarta Common 下的子项目,可以用来提供高效、最新的、功能丰富的支持Http协议的客户端工具包, 并且它支持Http协议最新的版本和建议。 ​ Http协议可以能是现在Internet上使用最多的、最重要的协议了,越来越多的Java应用程序需要直接通过Http协议来访问网络资源。 虽然在JDK的Java net包中已经提供了访问http协议...

tangguanlin2008的博客 1236

JAVA使用HttpClient实现爬虫技术

1. pom文件中加入httpClient依赖包&lt;dependency&gt; &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt; &lt;artifactId&gt;httpclient&lt;/artifactId&gt; &lt;version&gt;4.3.1&lt;/version&gt; &l

qq_38067116的博客 1610

httpclient源码介绍及其使用

httpclient源码介绍 前面介绍了hfs server的使用,本文使用设备系统为freertos,支持lwip协议,移植httpclient 后,从hfs server(这里本机电脑)获取文件。 httpclient主要存在两个结构体 //与建立网络连接相关,本文只看http,https省略(中间加层tls) typedef struct { int socket; ...

qq_38240926的博客 955
上一篇: node.js 使用笔记--源自技术
下一篇: HTML 标签集合--源自技术
MyJava_Dx
博客等级 码龄11年 1粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值