开发者学堂课程【Java面试疑难点串讲4:Java Web开发:Java 访问 http】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/27/detail/575
Java 访问 http
内容介绍
一、访问 http/https
二、通过 Java 程序调用
一、访问 http/https
●Java 如何访问 http 或是 https;
●如何提交模拟表单。
如果说现在想要配置 https 需要取得一个 CA认证,而后由 CA 签发根证书,再由CA 签发服务器证书,之后再进行客户端的证书签发。
如果要求不高,可以直接利用本地做一个模拟(这个模拟不能在 Tomcat9中进行)只能够在 Tomcat8中进行。
●配置示例:
要想正常使用 https,必须在 jdk 上配置有相应的证书信息。
整个代码如果想要正常进行的话,那 jdk 必须要换成自己的 jdk
1、启动 Tomcat
如果想要配置 https,那必须要求保证可以做一个域名映射:修改 hosts 文件,在文件里面追加一项127.0.0.1apache.com。
如果想进行 https 的配置,那么就需要配置一个域名。
2、修改 server.xml 文件:
●进行 http 的配置:需要写上这样的配置
3、模拟一个证书问题:
在 Java 中要想模拟这个证书可以使用 Keytool 命令完成,这个命令严格来讲要与认证机构的征求有关才可以拿来使用。
在版本搜索中包括/排除用户专用 JRE
-?-help 输出此帮助消息
-X 输出非标准选项的帮助
-ea[:...l:
-enableassertions[:(packagename>...l:(classnamo>]
按指定的粒度启用断言
da[:(packagename>...l:(classname>]
disableassertions[:...l:(clacsname>]
禁用具有指定粒度的断言
-e5a!-enablecustenassertions
启用系统断言
-dsa!-disablesystemassertions
禁用系统断言
-agentlib:[=<选项>]
加载本机代理库 ,例如-agentlib:hprof
另请参阅·agentlib:jdwp*help 和-agentlib:hprofzhelp
"agentpath:[*(选项>]
按完整路径名加载本机代理库
-javaagent:[=<选项>]
加载 Jaua 编程语言代理,请参阅 java.lang.instrument
-splash:
使用指定的图像显示启动屏慕
有关详细信息,请参阅 :
http://www.oracle.com/technetwork/iava/iavase/documentation/index.htm1.:\Users\优拓>
利用此时的模拟证书就可以进行https的配置了(只适合于Tomcat8.x)。
●http 的默认端口为80,而443是 https 配置的默认端口。
这样设置之后的 https 就可以访问了,改完之后,把 Tomcat 重新再启动一下。
浏览器访问:
这个斜杠代表着网页不安全,但是刚刚只是模拟了一下 https 的效果,但是真是来讲这样叫做不能使用,需要去花钱才能得到一个认证操作。
如果需要通过 Java 模拟 https 访问,也将不能进行访问,必须有PK12的格式证书。
二、通过Java程序调用
1、新建一个Maven项目
这样写完就代表已经有了一个 servlet 的程序;
2、通过注解进行访问
如果要想正常访问,最简单的做法是通过地址重写进行参数传递:
http://Apache.com/show demo/show?uname=mldn&uage=10
但是这个参数也可以通过程序模拟。在 Java.net 包中存在有一个URL的程序类,可以直接利用这个类来实现调用操作。
所以说想通过 Java 来调用远程访问地址,最简化的方法就是直接利用 URL 进行访问,但是这样的访问并不专业,而最专业的访问处理使用的是 httpclient 程序类,这个也是由 Apache 推广的程序类。
想通过 apache 来推广的话:
●需要修改 Pom.xml 的配置文件:配置文件里面需要增加一个新的配置项的类。
在整个的代码过程之中就是这样的一个版本
●编写程序
这两类模式都可以帮组实现 http 的调用,但是 httpclient 是一个比较专业的 http模拟的客户端。