电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Java httpClient介紹以及使用示例

瀏覽:80日期:2022-08-22 16:25:29

Java 開發語言中實現HTTP請求的方法主要有兩種:一種是JAVA的標準類HttpUrlConnection,比較原生的實現方法;另一種是第三方開源框架HTTPClient。

HttpClient相比傳統JDK自帶的URLConnection,增加了易用性和靈活性,它不僅是客戶端發送Http請求變得容易,而且也方便了開發人員測試接口(基于Http協議的),即提高了開發的效率,也方便提高代碼的健壯性。

一、HttpClient簡單介紹

HttpClient是Apache Jakarta Common下的子項目,用來提供高效的、最新的、功能豐富的支持HTTP協議的客戶端編程工具包,并且它支持HTTP協議最新的版本和建議。HttpClient已經應用在很多的項目中,比如Apache Jakarta上很著名的另外兩個開源項目Cactus和HTMLUnit都使用了HttpClient。

HTTPClient對HTTP的封裝性比較不錯,通過它基本上能夠滿足我們大部分的需求。HttpClient3.1 是 org.apache.commons.httpclient下操作遠程 url的工具包,雖然已不再更新,但實現工作中使用httpClient3.1的代碼還是很多。HttpClient4.5 是org.apache.http.client下操作遠程 url的工具包。

二、HttpClient特性

基于標準、純凈的java語言。實現了Http1.0和Http1.1。 以可擴展的面向對象的結構實現了Http全部的方法(GET, POST, PUT, DELETE, HEAD, OPTIONS, and TRACE)。 支持HTTPS協議。 通過Http代理建立透明的連接。 利用CONNECT方法通過Http代理建立隧道的https連接。 Basic, Digest, NTLMv1, NTLMv2, NTLM2 Session, SNPNEGO/Kerberos認證方案。 插件式的自定義認證方案。 便攜可靠的套接字工廠使它更容易的使用第三方解決方案。 連接管理器支持多線程應用。支持設置最大連接數,同時支持設置每個主機的最大連接數,發現并關閉過期的連接。 自動處理Set-Cookie中的Cookie。 插件式的自定義Cookie策略。 Request的輸出流可以避免流中內容直接緩沖到socket服務器。 Response的輸入流可以有效的從socket服務器直接讀取相應內容。 在http1.0和http1.1中利用KeepAlive保持持久連接。 直接獲取服務器發送的response code和 headers。 設置連接超時的能力。 實驗性的支持http1.1 response caching。 源代碼基于Apache License 可免費獲取。

三、使用方法

使用HttpClient發送請求、接收響應很簡單,一般需要如下幾步即可。

創建HttpClient對象。 創建請求方法的實例,并指定請求URL。如果需要發送GET請求,創建HttpGet對象;如果需要發送POST請求,創建HttpPost對象。 如果需要發送請求參數,可調用HttpGet、HttpPost共同的setParams(HetpParams params)方法來添加請求參數;對于HttpPost對象而言,也可調用setEntity(HttpEntity entity)方法來設置請求參數。 調用HttpClient對象的execute(HttpUriRequest request)發送請求,該方法返回一個HttpResponse。 調用HttpResponse的getAllHeaders()、getHeaders(String name)等方法可獲取服務器的響應頭;調用HttpResponse的getEntity()方法可獲取HttpEntity對象,該對象包裝了服務器的響應內容。程序可通過該對象獲取服務器的響應內容。 釋放連接。無論執行方法是否成功,都必須釋放連接

四、使用示例

HttpClient 為第三方Http 客戶端類庫;在開發過程中主要是發送Http協議的Post請求和Get請求。其中Post請求使用HttpPost對象構建、Get請求使用HttpGet對象構建。

HttpGet 請求

public static void main(String[] args) throws Exception {// 格式化請求url // String cmd=String.format('http://%s:%s@%s',username,password,split[1]);// 請求地址 String url = 'https://blog.csdn.net/amosjob/article/details/82775290'; // 創建默認的客戶端實例 CloseableHttpClient httpclient = HttpClients.createDefault(); // 創建get請求實例 HttpGet httpGet = new HttpGet(url); // 設置頭部信息 httpGet.setHeader('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2');// httpGet.addHeader('x-api-key', 'XXX');// httpGet.addHeader('x-lang', 'en-US'); // 執行GET請求 返回響應實體 HttpResponse response = httpclient.execute(httpGet); // 獲取響應碼 int statusCode = response.getStatusLine().getStatusCode(); // 獲取全部的請求頭 Header[] allHeaders = response.getAllHeaders(); System.out.println('響應狀態碼:' + statusCode); for (int i = 0; i < allHeaders.length; i++) { System.out.println('全部的請求頭:' + allHeaders[i]);} // 獲取響應消息實體 HttpEntity entity = response.getEntity(); //打印輸出網頁的內容(可刪除) if (entity != null) { // 推薦該辦法打印內容 System.out.println('響應的內容:'+EntityUtils.toString(entity)); // 也可以使用這個方法 InputStream inputStream = entity.getContent(); InputStreamReader streamReader = new InputStreamReader(inputStream); int line; line = streamReader.read() ; while (line!= -1) { System.out.print((char)line); line = streamReader.read() ; } }// 關閉連接try {httpclient.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}

HttpPost 請求

public static void main(String[] args) throws Exception {// 請求地址String url = 'https://passport.csdn.net/account/login';// 創建默認的客戶端實例CloseableHttpClient httpclient = HttpClients.createDefault();// 創建POST對象HttpPost httpPost = new HttpPost(url);// 傳參數List<NameValuePair> params = new ArrayList<NameValuePair>();params.add(new BasicNameValuePair('username', 'admin'));params.add(new BasicNameValuePair('password', '12345'));try {UrlEncodedFormEntity entity = new UrlEncodedFormEntity(params);httpPost.setEntity(entity);} catch (Exception e) {e.printStackTrace();}// 執行GET請求 返回響應實體HttpResponse response = httpclient.execute(httpPost);// 獲取響應碼int statusCode = response.getStatusLine().getStatusCode();// 獲取全部的請求頭Header[] allHeaders = response.getAllHeaders();System.out.println('響應狀態碼:' + statusCode);for (int i = 0; i < allHeaders.length; i++) {System.out.println('全部的請求頭:' + allHeaders[i]);}// 獲取響應消息實體HttpEntity entity = response.getEntity();// 打印輸出網頁的內容(可刪除)if (entity != null) {System.out.println('響應的內容:'+EntityUtils.toString(entity));}// 關閉連接try {httpclient.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}

以上就是Java httpClient介紹以及使用示例的詳細內容,更多關于Java httpClient的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: ★塑料拖链__工程拖链__电缆拖链__钢制拖链 - 【上海闵彬】 | 哈尔滨京科脑康神经内科医院-哈尔滨治疗头痛医院-哈尔滨治疗癫痫康复医院 | 提升海外网站流量,增加国外网站访客UV,定制海外IP-访客王 | 回转窑-水泥|石灰|冶金-巩义市瑞光金属制品有限责任公司 | 安徽控制器-合肥船用空调控制器-合肥家电控制器-合肥迅驰电子厂 安徽净化板_合肥岩棉板厂家_玻镁板厂家_安徽科艺美洁净科技有限公司 | 杰恒蠕动泵-蠕动泵专业厂家-19年专注蠕动泵 | 防火阀、排烟防火阀、电动防火阀产品生产销售商-德州凯亿空调设备有限公司 | 拉曼光谱仪_便携式|激光|显微共焦拉曼光谱仪-北京卓立汉光仪器有限公司 | 深圳律师咨询_深圳律师事务所_华荣【免费在线法律咨询】网 | 选宝石船-陆地水上开采「精选」色选机械设备-青州冠诚重工机械有限公司 | 海外整合营销-独立站营销-社交媒体运营_广州甲壳虫跨境网络服务 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 电动卫生级调节阀,电动防爆球阀,电动软密封蝶阀,气动高压球阀,气动对夹蝶阀,气动V型调节球阀-上海川沪阀门有限公司 | 底部填充胶_电子封装胶_芯片封装胶_芯片底部填充胶厂家-东莞汉思新材料 | 水质传感器_水质监测站_雨量监测站_水文监测站-山东水境传感科技有限公司 | 天津电机维修|水泵维修-天津晟佳机电设备有限公司 | 电动卫生级调节阀,电动防爆球阀,电动软密封蝶阀,气动高压球阀,气动对夹蝶阀,气动V型调节球阀-上海川沪阀门有限公司 | 安徽合肥项目申报咨询公司_安徽合肥高新企业项目申报_安徽省科技项目申报代理 | 玻璃钢型材-玻璃钢风管-玻璃钢管道,生产厂家-[江苏欧升玻璃钢制造有限公司] | 济南展厅设计施工_数字化展厅策划设计施工公司_山东锐尚文化传播有限公司 | 工业用品一站式采购平台|南创工品汇-官网|广州南创 | 鑫达滑石-辽宁鑫达滑石集团 | 不干胶标签,不干胶标签纸_厂家-山东同力胶粘制品 | 信阳市建筑勘察设计研究院有限公司 | 深圳办公室装修,办公楼/写字楼装修设计,一级资质 - ADD写艺 | 服务器之家 - 专注于服务器技术及软件下载分享 | 齿辊分级破碎机,高低压压球机,立式双动力磨粉机-郑州长城冶金设备有限公司 | 磨煤机配件-高铬辊套-高铬衬板-立磨辊套-盐山县宏润电力设备有限公司 | 带压开孔_带压堵漏_带压封堵-菏泽金升管道工程有限公司 | 上海地磅秤|电子地上衡|防爆地磅_上海地磅秤厂家–越衡称重 | 福建自考_福建自学考试网 | 渣土车电机,太阳能跟踪器电机,蜗轮蜗杆减速电机厂家-淄博传强电机 | 上海租车公司_上海包车_奔驰租赁_上海商务租车_上海谐焕租车 | 全球化工设备网—化工设备,化工机械,制药设备,环保设备的专业网络市场。 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 不锈钢轴流风机,不锈钢电机-许昌光维防爆电机有限公司(原许昌光维特种电机技术有限公司) | 环讯传媒,永康网络公司,永康网站建设,永康小程序开发制作,永康网站制作,武义网页设计,金华地区网站SEO优化推广 - 永康市环讯电子商务有限公司 | Type-c防水母座|贴片母座|耳机接口|Type-c插座-深圳市步步精科技有限公司 | 德国GMN轴承,GMN角接触球轴承,GMN单向轴承,GMN油封,GMN非接触式密封 | 制丸机,小型中药制丸机,全自动制丸机价格-甘肃恒跃制药设备有限公司 | 民用音响-拉杆音响-家用音响-ktv专用音响-万昌科技 | 求是网 - 思想建党 理论强党 |