美文网首页
细说 URLConnection

细说 URLConnection

作者: 春天里的布谷鸟 | 来源:发表于2016-01-10 16:14 被阅读593次

在java网络编程里面URLConnection是个非常重要的类,有了它就可以实现大部分的网络编程。

URL 和 URLConnection的联系和区别?

  1. urlConnection 提供了比url更多的功能。如果你想从网上下载一个图片、请求一个网页,那么使用url这个类已经完全够用了,因为他提供了openStream()方法获取一个输入流,你就可以得到你想得到的资源了,但是如果出了想获取内容外还想提交一个表单,那url就无能为力了,因为他只读不写。
  1. urlConnection 提供了读取响应头的功能。出了可以读取到响应体,他还可以读取响应的头信息
  2. urlconnection 提供了发送发送数据的功能。比如你要提交一个表单。
  3. urlConnection 在请求的时候,提供了更多的控制选项,比如可以

控制是否可写,
是否 允许交互,
是否使用缓存,
设置底层socket的超时时间,
配置请求的首部

如何获取URLConnection 对象?

URLConnection 是个抽象类,也没有public的构造方法,唯一获取的方式是

  1. 首先new 一个url对象
  1. 使用url对象的 getConnection()得到URLConnection 对象

HttpURLConnection 到底牛逼在哪?

HttpURLConnection 是URLConnection的抽象子类,其实我们使用url.getConnection()得到的类就是一个HttpURLConnection对象,这个对象提供了比URLConnection 对象更多好用的方法。
控制请求的方法。可以通过 setRequestMethod()来设置请求的方法,GET POST HEAD PUT DELETE OPTIONS TRACE

主动断开连接。默认情况下URLConnection使用的是keep-alive ,服务器在发送完了最后一个字节(-1)后不会立即关闭连接,如果在次发起请求,会重用底层的socket连接。使用disconnect()方法就可以显示的关闭连接,关闭连接的使用会关闭流,但是关闭流不会关闭这个socket连接

得到响应状态码和消息行。提供了方法getResponseCode和getRespoonseMessage方法来获取状态码好的消息行

控制url 重定向 。默认情况下,如果返回30x的状态码,H团体票Urlconnection会自动的重定向。但是可以通过setFollowRedirects来设置是否允许自动重定向

查看使用了代理。如果中间经过了代理服务器,userProxy方法返回true。

几个常用的http方法

  1. GET POST 就不说了
  1. HEAD ,相当于get,但是不反回正文部分,只返回请求头部分
    3.OPTIONS, 这个方法可以得到服务端到底支持那些个http方法。
    4.TRACE, 如果中间经过了代理服务器,代理服务器可能修改了一些首部,这个方法返回服务器最终接收到的首部是怎样的,这样你就可以知道中间的代理服务器做了那些手脚
    5.PUT/DELETE 这些方法顾名思义。但是最终还要依赖于服务端的实现,一般我们在servlet中并没有写这些方法,那么实际上是没有用的。

请求头:content-length,java是如何计算的呢?

java并不是读取一个字节就立即发送到服务器,他是现在整个资源都放在了缓冲里,计算完了长度后在发送的,所以他比较适合发送比较小得表单,对于特别大得表单往往表现不佳。

相关文章

  • 细说 URLConnection

    在java网络编程里面URLConnection是个非常重要的类,有了它就可以实现大部分的网络编程。 URL 和 ...

  • java的http通信

    使用URLConnection与httpClient发送get/post请求 使用URLConnection实现G...

  • URLConnection

    概念 URI(Uniform Resource Identifier) URI是互联网上标识某一资源的字符串,是一...

  • URLConnection

    简介 URLConnection是一个抽象类,表示指向URL指定资源的活动连接。URLConnection有两个不...

  • google官方URLConnection发起网络请求&&Han

    google官方API URLConnection发起网络请求 官方URLConnection文档(详见官方文档)...

  • android网络通信

    1.URLConnection URLConnection是一个抽象类,表示指向URL指定资源的活动连接。如果你连...

  • URLConnection 详解

    URLConnection是一个抽象类,指向URL指定资源的活动连接。与URL相比,它可以对服务器的交互进行更多的...

  • NSURLSession

    URLConnection URL -> NSURLRequest -> URLConnect NSURLSess...

  • HttpClient概述

    JDK URLConnection -> Commons HttpClient -> HttpComponents...

  • urlconnection post请求

网友评论

      本文标题:细说 URLConnection

      本文链接:https://www.haomeiwen.com/subject/ikvihttx.html