最近比较忙碌,都没有时间更新公众号文章,表示比较惭愧。最近翻看了一下自己的博客,发现这篇文章的内容还是挺实用,所以,想分享给大家,欢迎阅读。在后续,我会从一个范围的角度进行编写一系列文章,便于各位深层次的理解,而不是片面的了解知识点,并且会有规律性的更新文章,期望你的持续关注。
另外,我也官宣一下自己的花名为【小蜗牛】,愿我们都能像小蜗牛一样,一步一个脚印,坚持不懈,达到我们的梦想彼岸。
情景引入
旁白:
今天兴致极好,开开心心的与小白玩着“网页小游戏”
1.小白
真开心呀,好久没有玩这些网页游戏了呢。
2.小蜗牛
确实,工作一来,哪有这样的闲情逸致。
1.小白
不过,你看,咱们玩的游戏都是通过网页链接请求,然后返回给咱们这么多对应的响应内容,它这里感觉好神奇。2.小蜗牛
当然,它里面涉及到的内容还是非常多,可不是一下就能完整掌握的,你这思考问题的能力大大加强了嘛!
1.小白
这可不嘛,学习到老才行呢。不过,我经常听到同事说,快给我一个接口地址,我要向你发出请求获取信息啦,这里面到底是怎么实现的,一直都没有机会去请教他们。2.小蜗牛
虚心求教,这是非常值得的,不要害怕,不懂就要问,这才是应该有的态度。既然,这样的话,那我就给你科普科普。这不,正好咱们也可以“中场休息”一会,再继续游戏呢。
1.小白
好呀好呀!学习,游戏两不误,岂不是人生一大快事!2.小蜗牛
小白,你已经长大了!!
引言
当我们输入一个URL然后回车,页面会显示出对应的功能信息,那么它这个过程到底是如何的呢?其实,这里面涉及到的内容会非常多,比如缓存,地址解析,http协议,网络请求,OSI模型,服务器数据组装,页面渲染等等。这里,就不会说得那么详细(PS:但是这个链路过程,建议各位看官可以好好的琢磨琢磨,分析分析),本文主要是针对,如果对一个已知URL发出请求并获取到其实时的响应信息;
实际场景
我想,在实际开发中经常会碰到这样的事情,就是:需要Http请求其他同事开发的接口,而获取对应需要的内容,比如下载一个URL的文件或者获取数据列表信息等等以及调用第三方公共接口信息。那么,必不可少的就是通过代码去发出一个http的请求。那么,具体如何操作呢?客观,慢慢往下看!
操作方法
现在的方法有很多,且不限于本文说到的几种方式哦!本文主要采取循序渐进的方式,并没有说哪一种方法就是最好的,具体问题具体分析,要以一种开放的心态看待这个问题。
HttpUrlConnection
请求步骤
PS:该方式是最原始的方式,所以值得学习其内部执行流程;
package com.hnu.scw.utils;import java.io.*;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLEncoder;import java.util.Map;/** * @ Author :scw * @ Date :Created in 上午 10:34 2020/5/24 0024 * @ Description:请求URL的post方法工具类 * @ Modified By: * @Version: $version$ */public class HttpPo