当前课程知识点:JAVA程序设计进阶 >  第四章 网络编程(上) >  4.3 Get请求与Post请求 >  Video

返回《JAVA程序设计进阶》慕课在线视频课程列表

Video在线视频

Video

下一节:Video

返回《JAVA程序设计进阶》慕课在线视频列表

Video课程教案、知识点、字幕

这一节我们将介绍

如何通过最常见的http请求get和post

来去访问互联网上的网络资源

当然用URLConnection的话

不仅仅是说可以从互联网上的资源

把它内容读过去

我们自己写的java程序

也可以发送一些信息

发给这个互联网上的资源

它所在的服务器

那我们经常在互联网写程序

要有一个get方法

所谓get方法

就是站在我们编写的java角度

我想从某一个网站上

去读取它的这个内容

那我们看怎么利用URLConnection

来去写这个get方法

我们这里是public static sendGet

sendGet方法有两个参数

一个是目标的URL地址

另外一个就是在往这个目标URL

发送请求的时候

我们有哪些参数

我们看一下这个类的第二行

String result等于空

构造这个字符串的结果是空

然后BufferedReader in

等于null等于空

然后try String urlName String=

url+?+param

就是这个参数

所以我们构造出了一个

url名字的一个字符串

紧接着我们让URL这个类

我们声明它的一个对象叫realurl

然后再调用它的构造方法new URL

然后它里面的参数

就是刚才那个URLName String这个字符串

那通过这个URL构造

就是想表示

我们想要访问的互联网上的这个资源

紧接着通过这个资源的openConnection方法

也就是realurl.openConnection

然后得到它的URLConnection对象

Connection

那紧接着我们通过Connection

我需要发送请求了

Connection.setRequestProperty

accept还有一个/

然后紧接着我们又设

Connection.set Request Property

它的这个Connection的这个值

是这个keep Alive

然后紧接着我们利用Connection

调用它的Connect方法

就和我们的URL建立了实际的连接

那建立完连接后想干什么

那还是要读取内容

因为刚才我们已经发一些请求过去

发完以后我们就要读

那为了读取内容

我们就构造一个输入流对象

那in=newBufferedReader

然后newInputStreamReader

ConnectiongetInputStream

那也就是通过我们Connection对象

获得这个输入流

然后在外面先包了一层

inputStreamReader

再往外又包一层BufferedReader

最终我们就得到了

BufferedReader的一个对象in

那下面就开始通过in来进行读取信息了

那我们先定义一个字符串line

然后while line等于inreadLine不等于空

也就是in它读一行

然后它这个不等于空

那我们读到它的这个一行的

这个字符串信息

紧接着把这个读到的信息

写到结果里面

就是result+等于line

然后我们还捕获了这个异常

catch Exception e

然后finally的话

就是说如果in不等于空的话

我们记得把这个输入流进行关闭

同时也要捕获一下异常

最后我们把这个结果result返回

所以在这个例子当中

我们就是利用了URLConnection这个类

构造了一个对我们URL对象的一个访问

然后我们是先有一个往外输出参数

然后紧接着再通过这个inputstream

来读取它的内容

除了get方法在互联网当中

我们访问这些网络资源

另外一张用的就是post方法

那post方法是说

我站在我这个java程序

我要往服务器发送请求的时候

我先发一些参数

我发一些参数

然后那服务器再响应我

再把一些相应的这个内容

给我返回过来

那我们这个过程

这个就需要通过URLConnection的

输出流来写入参数

我们看一下这个代码的例子

public static String sendPost

它有两个参数

一个是Stringurl

另外一个string param

然后第二行我们构造一个输出流

PrintWriter out等于空

我们又构造一个输入流

BufferedReader in等于空

String Result等于空

那我们看一下里面怎么去打开资源的

首先我们构造一个URL对象

realurl然后通过这个realUrl对象的

openConnection方法

获得了一个URLConnection的对象

我们把它的命名为conn

那下面的话我们通过conn这个对象

来设它的发送请求

比如setRequestProperty

accept是怎么回事

有一个setRequestProperty的

Connection为keep Alive

然后conn.setDoOutput true

就是说我这个连接对象

我确实需要往外输出的

那我要输出什么东西

就out=new PrintWriter

conn.getOutputStream

我获得了它的输出流

并且外面包上一层那个

PrintWriter这个类的对象

那下面我要跟利用这个out

我要往外发送消息了

怎么发送消息呢

就是out.print param

那这是param

就是我们要发送的这些参数

然后强制输出

out.flush让这个要发送的内容

就是真的往我们互联网上的服务器去发

发完了以后

这时候我们站在

我们这个java程序的角度

我就要等待那边的服务器给我返回信息

那我怎么获得返回的信息

这时候我又通过我的那个

Connection对象conn

然后通过它的get InputStream

得到它的输入流

然后外边我就包了inputStreamReader

再包了一层BufferReader

那就最后形成了我们一个

BufferReader对象In

那现在我利用这个in这个对象

我来一行一行的读取这个信息

读完了以后我又把这个

读完的信息写到result这个变量当中

那这个中间一些过程

也进行了捕获异常的处理

最后一行就是我们return result

也就是把我们读到的信息返回回去

所以通过这个例子大家也看到

我们用这个Connection这个对象

然后可以实现对于网络上的资源

我可以给它发送参数

然后还可以接收它的返回来的结果

那这样一个过程

就是一个典型的post请求的过程

那post请求是后面大家在学的

http的这种网络传输协议的时候

最常见的一个方法

那在java.net包当中

为了让我们的程序更好的处理

Http的这种请求

它提供了一个类

叫httpURLConnection

那里面提供了针对http请求的内容

比如说它提供了http的状态码

例如http OK 200

另外的话它还可以用来

设置我们这种常见的请求方法

就是setRequestMethod

比如get或者post等等

另外的话它也提供另外一个方法

叫getResponseCode

你可以获取我们的网络上的服务器

所返回来的Http的响应

总而言之在httpURLConnection

这个类里边

提供了非常有益的这些变量和方法

使我们非常方便的能够处理

来自http的各种请求

然后也可以通过这个类

去访问到我们互联网上的很多URL的资源

这一节我们介绍了get和post方法的原理

JAVA程序设计进阶课程列表:

第一章 线程(上)

-1.0 导学

--Video

-1.1 线程的基本概念

--Video

-1.1 线程的基本概念--作业

-1.2 通过Thread类创建线程

--Video

-1.2 通过Thread类创建线程--作业

-1.3 线程的休眠

--Video

-1.3 线程的休眠--作业

-1.4 Thread类详解

--Video

-1.5 通过Runnable接口创建线程

--Video

-1.5 通过Runnable接口创建线程--作业

-1.6 线程内部的数据共享

--Video

第二章 线程(中)

-2.0 导学

--Video

-2.1 线程同步的思路

--Video

-2.2 线程同步的实现方式—Synchronization

--Video

-2.3 线程的等待与唤醒

--Video

-2.4 后台进程

--Video

-2.5 线程的生命周期与死锁

--Video

-2.6 线程的调度

--Video

第三章 线程(下)

-3.0 导学

--Video

-3.1 线程安全与线程兼容与对立

--Video

-3.2 线程的安全实现-互斥同步

--Video

-3.3 线程的安全实现-非阻塞同步

--Video

-3.4 线程的安全实现-无同步方案

--Video

-3.5 锁优化

--Video

第四章 网络编程(上)

-4.0 导学

--Video

-4.1 URL对象

--Video

-4.2 URLConnection对象

--Video

-4.3 Get请求与Post请求

--Video

-4.4 Socket通信原理

--Video

-4.5 Socket通信实现

--Video

第五章 网络编程(下)

-5.0 导学

--Video

-5.1 Socket 多客户端通信实现

--Video

-5.2 数据报通信

--Video

-5.3 使用数据报进行广播通信

--Video

-5.4 网络聊天程序

--Video

第六章 Java虚拟机

-6.0 导学

--Video

-6.1 Java虚拟机概念

--Video

-6.2 Java虚拟机内存划分

--Video

-6.3 Java虚拟机类加载机制

--Video

-6.4 判断对象是否存活算法及对象引用

--Video

-6.5 分代垃圾回收

--Video

-6.6 典型的垃圾收集算法

--Video

-6.7典型的垃圾收集器

--Video

第七章 深入集合Collection

-7.0 导学

--Video

-7.1 集合框架与ArrayList

--Video

-7.2 LinkedList

--Video

-7.3 HashMap与HashTable

--Video

-7.4 TreeMap与LinkedHashMap

--Video

-7.5 HashSet

--Video

第八章 反射与代理机制

-8.0 导学

--Video

-8.1 Java反射机制

--Video

-8.2 Java静态代理

--Video

-8.3 Java动态代理

--Video

-8.4 Java 反射扩展-jvm加载类原理

--Video

-8.5 Java进阶课程总结

--Video

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。