前言
以前一直都是用浏览器发请求,刚接触到Http客户端,了解到原来可以在应用内使用Http客户端来发送GET、POST、PUT等基于RESTful风格的请求,原谅我以前的无知。那么使用OkHttp来实现应用内发请求。
1、OkHttp介绍
OkHttp是一个优秀的网络请求框架。
百度中的介绍如下:
okhttp是一个第三方类库,用于android中请求网络。这是一个开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso和LeakCanary) 。用于替代HttpUrlConnection和Apache HttpClient(android API23 里已移除HttpClient)。
2、优势
-
允许连接到同一个主机地址的所有请求,提高请求效率
-
共享Socket,减少对服务器的请求次数
-
通过连接池,减少了请求延迟
-
缓存响应数据来减少重复的网络请求
-
减少了对数据流量的消耗
-
自动处理GZip压缩
3、功能
-
get,post请求
-
文件的上传下载
-
加载图片(内部会图片大小自动压缩)
-
支持请求回调,直接返回对象、对象集合
-
支持session的保持
4、使用OkHttp
(1)pom依赖
<!-- http客户端 -->
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.9.0</version>
</dependency>
(2)配置类
/*
* 配置类
*/
@Configuration
public class RestTemplateConfig {
//注册RestTemplate
@Bean
public RestTemplate getRestTemplate() {
return new RestTemplate(new OkHttp3ClientHttpRequestFactory());
}
}
配置类的作用是Spring容器中注入RestTemplate,待会儿要用它来发请求。
(3)测试
这是我在浏览器中通过url打开的页面:
url为:https://www.wmtxt.com/0/2/52543262.html
那么接下来使用java程序来请求这个url,测试类如下:
@SpringBootTest
public class TestOkHttp {
@Autowired
RestTemplate restTemplate;
//测试okhttp客户端
@Test
public void testOkHttp() {
//定义一个请求地址
String dataUrl = "https://www.wmtxt.com/0/2/52543262.html";
//使用RestTemplate发http请求
Object obj = restTemplate.getForObject(dataUrl, java.lang.String.class);
System.out.println(obj.toString());
}
}
控制台输出的内容如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>章节目录 第3147章 太玄神剑_吞天龙王_无名小说网</title>
<meta name="keywords" content="章节目录 第3147章 太玄神剑,吞天龙王,玄幻小说,无名小说网" />
<meta name="description" content="无名小说网提供吞天龙王最新章节《章节目录 第3147章 太玄神剑》全文免费阅读,页面清爽无弹窗!" />
<link href="/17mb/style/style.css" rel="stylesheet" />
<script src="/17mb/script/common.js"></script>
<script src="/17mb/script/uaredirect.js"></script>
<script type="text/javascript">uaredirect("https://m.wmtxt.com/0/2/52543262.html");</script>
<script type="text/javascript">
<!--
var preview_page = "/0/2/52543261.html";
var next_page = "/0/2/";
var index_page = "https://www.wmtxt.com/0/2/";
var article_id = "2";
var chapter_id = "52543262";
function jumpPage() {
var event = document.all ? window.event : arguments[0];
if (event.keyCode == 37) document.location = preview_page;
if (event.keyCode == 39) document.location = next_page;
if (event.keyCode == 13) document.location = index_page;
}
document.onkeydown=jumpPage;
-->
</script>
</head>
<body>
<div class="main">
<div class="head">
<div class="top"><script src="/17mb/script/base.js"></script>
<div class="p2"><script>user()</script></div>
</div>
<div class="logo"><a href="/"><img src="/17mb/style/logo.png" alt="无名小说网" /></a></div>
<div class="search">
<form action="/modules/article/search.php" method="post">
<input id="text1" type="text" name="searchkey" />
<input id="text2" type="submit" value="点击搜索"/>
</form>
</div>
<div class="dl_sj">
<p class="sj"><i></i><a href="/user/mark/index.html">书架</a></p>
<div class="clear"></div>
</div>
</div>
<div class="nav">
<ul>
<li><a href="/">首页</a></li>
<li><a href="/xuanhuan/1.html">玄幻小说</a></li>
<li><a href="/xianxia/1.html">仙侠小说</a></li>
<li><a href="/dushi/1.html">都市小说</a></li>
<li><a href="/junshi/1.html">军史小说</a></li>
<li><a href="/wangyou/1.html">网游小说</a></li>
<li><a href="/kehuan/1.html">科幻小说</a></li>
<li><a href="/kongbu/1.html">恐怖小说</a></li>
<li><a href="/qita/1.html">其他小说</a></li>
<li><a href="/paihang/allvisit_1.html">排行榜</a></li>
<li><a href="/full.html">完结小说</a></li>
<div class="clear"></div>
</ul>
</div>
<div class="main_content">
<div class="nr_input">
<p class="nrset"><a href="/user/mark/add.html?novelid=2">加入书架</a></p>
<div class="nrset">
<a href="javascript:nrsetshow();" class="nrset_link">设置背景</a>
<div id="nrset_show" class="nrset_show"><script src="/17mb/script/pagetop.js"></script></div>
</div>
<p class="nrset"><a href="/0/2/52543261.html">上一章</a></p>
<p class="nrset"><a href="/0/2/">返回目录</a></p>
<p class="nrset"><a href="/0/2/">下一章</a></p>
</div>
<div id="nr_content" class="nr_content">
<div class="nr_title"><h3>章节目录 第3147章 太玄神剑</h3><span class="articletitle"> 作品:《<a href="https://www.wmtxt.com/0/2/">吞天龙王</a>》</span></div>
<div class="nr_page">
<a href="/0/2/52543261.html">上一章</a>
<a href="https://www.wmtxt.com/0/2/">返回目录</a>
<a href="https://www.wmtxt.com/user/mark/add.html?novelid=2">加入书签</a>
<a href="/0/2/">下一章</a>
</div>
<p class="backpic"></p>
<div class="novelcontent">
<p class="articlecontent" id="articlecontent">
精彩阅读·尽在·无名小说网(<a href="http://www.wmtxt.com" target="_blank">www.wmtxt.com</a>)<br/><br/> 药王谷之中,一股滔天气势,冲天而起!<br/><br/> 那股气势,直冲九天云霄之上,引发天地异象,更引来诸多大能的神念窥探。<br/><br/> 一时之间,药王谷,成为诸多大能关注的焦点!<br/><br/> 而紧接着,一道身影,显露在众人眼前。<br/><br/> 正是李长空!<br/><br/> 天武仙尊,都不由得停下手来,目光遥望而去。<br/><br/> 这一看,顿时心中惊诧不已。<br/><br/> “仙尊之境?”<br/><br/> “不,他还没有突破!”<br/><br/> 天武仙尊,更加心惊不已,虽然李长空还没突破,还没到达仙尊之境,可此刻给他的感觉,竟是比之大圆满仙尊,都不遑多让。<br/><br/> 这可就太恐怖了!<br/><br/> 经历当初那一战,李长空的恐怖,他犹自铭记于心,哪怕是此刻,修为实力已经有了极大的提升,但内心深处,竟是有些许的惶恐。<br/><br/> “你终于舍得出现了吗?”<br/><br/> 太虚仙尊,则是眸光一凝。<br/><br/> 事实上,他也被李长空的惊人气势所震慑,但当他发现,李长空仍旧没有突破仙尊之境的时候,心中不由得稍稍镇定。<br/><br/> 只要还未曾突破,那他,便有胜算!<br/><br/> 李长空,目光扫视而来。<br/><br/> 在太虚仙尊与天武仙尊身上,一一扫过。<br/><br/> 片刻之后,便是冷笑起来。<br/><br/> 这番闭关修炼,他可是吞噬了诸多仙丹,药王所积累下来的仙丹,几乎被他吞噬一空。<br/><br/> 如此庞大的能量,其实,完全是足以让他突破境界,到达仙尊之境,甚至是高阶仙尊之境都可期!<br/><br/> 不过,他没用来突破境界,因为他更希望,借助战斗的压迫,来让自己突破境界。<br/><br/> 炼化仙丹得到的所有能量,他都用来提升龙神不灭体,如今体内的混沌龙魂,已经多达七百二十道,凝聚七百二十道的不灭之光。<br/><br/> 比起之前,足足翻了一倍。<br/><br/> 战力的提升,可是比突破仙尊之境,更加惊人。<br/><br/> 所以他出关之际,方才能有如此惊人的异象显露。<br/><br/> 如今,他正好需要一场战斗,需要实力强大的对手,来给予自己压力,好顺利地突破境界。<br/><br/> 而太虚仙尊与天武仙尊的出现,时机太完美了,简直就是瞌睡了有人来送枕头。<br/><br/> 心念及此,看向太虚仙尊的目光,都变得柔和,嘴角微微上扬。<br/><br/> 看到李长空,竟露出如此表情,太虚仙尊,没来由地生出几分厌烦之心,神色更是变得冷厉许多。<br/><br/> 他可是玄元仙宗宗主啊,乃是整个青云州的巨头,身份地位,何等尊贵!<br/><br/> 而李长空,当初不过是玄元仙宗内的一名弟子,虽然天赋不凡,可与他这等巨头之间,有着巨大的差距。<br/><br/> 如今却被李长空给鄙夷了,他如何能忍!<br/><br/> 锵!<br/><br/> 当即,太虚仙尊身躯之上,涌动着道道的剑罡,凌厉的剑意,纵横天地之间。<br/><br/> 更有绝世剑虹,轰然斩落,向着李长空斩杀而去。<br/><br/> 剑威,震荡虚空,形成一股股的滔天剑势。<br/><br/> 而在这一股剑势之下,药王不由得被震退,甚至感觉,体内气血,竟也被剑道气机所牵引,险些便遭受重创。<br/><br/> 他这才知道,从一开始,这位玄元仙宗的宗主,已经留手了,根本没发挥出来多少的战力。<br/><br/> 直到如今,与主人一战,才是真正的实力啊!<br/><br/> 他神色不由得黯然,论实力,与这等顶尖强者,差距还是十分巨大的。<br/><br/> “哼!”<br/><br/> 而李长空,则是冷哼一声。<br/><br/> 双手一捏,顿时仙诀涌现,凝结一道惊人仙印!<br/><br/> 赫然是玄武仙印!<br/><br/> 轰隆!<br/><br/> 那道玄武仙印,迎上了璀璨剑虹,绝世剑威爆发而出。<br/><br/> 顿时之间,那玄武仙印,应声而碎。<br/><br/> 而滔天剑威,犹自镇杀而下。<br/><br/> “哼,区区玄武仙印,也想挡我剑威?”<br/><br/> 太虚仙尊,冷哼一声。<br/><br/> 他的实力,可不是玄武所能比拟的。<br/><br/> 身为宗主,自然有其过人之处。<br/><br/> 李长空不动声色,在那滔天剑威,即将降临自己身前之际,却是一拳打出。<br/><br/> 只见,这一拳打出,浩荡龙威,爆发而出。<br/><br/> 似乎随着这一拳打出的,还有道道的混沌祖龙的龙息!<br/><br/> 灼热气息,似乎要焚灭诸天!<br/><br/> 更有浩瀚无穷的混沌力量涌现。<br/><br/> 与这滔天剑威硬撼。<br/><br/> 李长空身影一动,破开璀璨剑芒,竟是径直向着太虚仙尊杀去。<br/><br/> 他身如混沌祖龙,身躯之上,覆盖着道道龙鳞,金光闪闪,十分不凡。<br/><br/> 身后,甚至还显露一方混沌世界的虚影,那是混沌之力加持,形成的不凡异象。<br/><br/> 融合七百二十道龙魂,他的力量更加不凡,实力也越发的强大。<br/><br/> 单凭肉身力量,足以镇压一尊巅峰仙尊。<br/><br/> 当然了,太虚仙尊,也并非普通的巅峰仙尊所能比拟的。<br/><br/> 尤其是手中的太玄神剑,更是绝品仙尊之宝,其威能,十分恐怖。<br/><br/> 太虚仙尊,神色微动,尽管内心震撼,但更多的,还是震怒。<br/><br/> 手中的太玄神剑,涌现滔天光芒。<br/><br/> 那道道光芒,十分不凡,蕴含着大道道则,剑意凌云!<br/><br/> 各种玄妙的力量浮现,加持神剑,一剑斩落,似乎乃是开天一剑。<br/><br/> 剑威迸发而出,天地震动,如同是绝世神剑,斩断仙路。<br/><br/> 嘭嘭嘭……<br/><br/> 在这一剑之下,李长空爆发出来的滔天凶威,竟是被尽数镇压。<br/><br/> 那太玄神剑上,无尽威能,何等玄奥!<br/><br/> 此刻,镇压李长空,甚至连是身后的混沌世界虚影,都一一破碎。<br/><br/> 而李长空也被这一剑给劈飞出去。<br/><br/> 身躯之上,竟是留下了一道血痕,鲜血长流。<br/><br/> 龙鳞都碎裂了!<br/><br/> 单凭太虚仙尊自身的实力,是无法做到如此地步的。<br/><br/> 可加上太玄神剑,就能破开李长空的肉身防御!<br/><br/> 这一剑,足以展现太虚仙尊的强悍之处。<br/><br/> 药王谷之中,人心震动。<br/><br/> 他们之中,许多人,都并非真心臣服。<br/><br/> 此刻看到太虚仙尊,力压李长空,稳居上风,顿时人心动荡。<br/><br/> 只有药王,露出担忧之色。<br/><br/> 难道,连是主人都不敌太虚仙尊?<br/><br/> 他如今生死,都掌控在李长空之手,自然是希望李长空能取胜。<br/><br/> “哈哈哈哈,不愧是宗主啊!”<br/><br/> 天武仙尊,发出得意大笑。<br/><br/> 他看得清楚明白,但论实力而言,宗主并不比现在的他强多少。<br/><br/> 关键在于,宗主如今,有着太玄神剑在手,这件法宝,威能太强了!<br/><br/> 哪怕是此刻体内有着黑暗力量加持的他,都无法匹敌太玄神剑!<br/><br/> 手机看书,尽在·无名小说手机版M.wmtxt.coM </p>
</div>
<p class="backpic"></p>
<div class="nr_page">
<a href="/0/2/52543261.html">上一章</a>
<a href="https://www.wmtxt.com/0/2/">返回目录</a>
<a href="https://www.wmtxt.com/user/mark/add.html?novelid=2">加入书签</a>
<a href="/0/2/">下一章</a>
</div>
</div>
</div>
<div class="footer">
<div class="left">
<div class="footernav">
<p class="p2">本站所有小说为转载作品,所有章节均由网友上传,转载至本站只是为了宣传本书让更多读者欣赏。<br/>
无名小说网(2018) <script>__17mb_beian();</script></p>
</div>
</div>
<div class="right">
<p><img src="/17mb/style/erweima.png" /></p>
</div>
<div class="clear"></div>
</div>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?973353ec29e3383b076236b4a742b4ed";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</div>
<script src="/17mb/script/pagebottom.js"></script>
<script type="text/javascript" src="/17mb/script/yuedu.js"></script>
<script>var lastread=new LastRead();lastread.set('21', '27926', '圣墟', '章节目录 第二章 后文明时代','辰东');__17mbSort(1);</script>
<script>
(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https'){
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else{
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
</script>
</body>
</html>
可以看到是原网页的内容,通过RestTemplate模板发请求获取到了网页全部内容。我也试过使用其他网站的url,但是有的返回是403Forbidden,不知道是什么原因,我猜是网站出于安全的考虑,拦截了有些请求,不解。