网络编程|URLConnection类

一、URLConnection简述

1、是一个抽象类

表示指向URL指定资源的活动连接。

2、依赖于Socket类实现网络连接

URLConnection类提供了比Socket类更易于使用、更高级的网络连接抽象。

3、贴近HTTP协议

4、继承关系

java.lang.Object
—java.net.URLConnection
--------java.net.HttpURLConnection

5、代表应用程序和URL之间的通信连接

二、创建一个到URL的连接的步骤

(1)通过在URL上调用openConnection方法创建连接对象
(2) 处理设置参数和一般请求属性
(3)使用connect方法建立到远程对象的实际连接
(4)远程对象变为可用。远程对象的头字段和内容变为可访问

三、HttpURLConnection

1、每个HttpURLConnection实例都可用于生成单个请求。

其他实例可以透明地共享连接到HTTP服务器的基础网络。请求后在HttpURLConnection的InputStream或OutputStream上调用close()方法可以释放与此实例相关联的网络资源,但对共享的持久连接没有任何影响。

2、对于Connection的对象的设置具有顺序

①connection的设置(set函数)必须在函数执行之前完成;
②OutputStream的写操作必须在InputStreeam读操作之前。

四、简单用法

1、创建连接
URL url = new URL("http://localhost:8080/TestHttpURLConnectionPro/index.jsp");   
  
URLConnection rulConnection = url.openConnection();  
        // 此处的urlConnection对象实际上是根据URL的   
          // 请求协议(此处是http)生成的URLConnection类   
          // 的子类HttpURLConnection,故此处最好将其转化   
          // 为HttpURLConnection类型的对象,以便用到   
          // HttpURLConnection更多的API.如下:   
  
HttpURLConnection httpUrlConnection = (HttpURLConnection) rulConnection;   
2、设置Connection参数
// 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在   
// http正文内,因此需要设为true, 默认情况下是false;   
httpUrlConnection.setDoOutput(true);   
  
// 设置是否从httpUrlConnection读入,默认情况下是true;   
httpUrlConnection.setDoInput(true);   
  
// Post 请求不能使用缓存   
httpUrlConnection.setUseCaches(false);   
  
// 设定传送的内容类型是可序列化的java对象   
// (如果不设此项,在传送序列化对象时,当WEB服务默认的不是这种类型时可能抛java.io.EOFException)   
httpUrlConnection.setRequestProperty("Content-type", "application/x-java-serialized-object");   
  
// 设定请求的方法为"POST",默认是GET   
httpUrlConnection.setRequestMethod("POST");   
  
// 连接,从上述第2条中url.openConnection()至此的配置必须要在connect之前完成,   
httpUrlConnection.connect();   

关于URLConnection的实例在这篇文章中

https://blog.csdn.net/Geekst/article/details/89392455

猜你喜欢

转载自blog.csdn.net/Geekst/article/details/89431160