首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

java的URLConnection类是干什么用的?

发布网友 发布时间:2022-04-22 03:42

我来回答

1个回答

热心网友 时间:2023-10-23 13:05

一.继承关系

1.  java.lang.Object

          --java.net.URLConnection

              --java.net.HttpURLConnection

二.URLConnection类

  1.URLConnection代表应用程序和 URL 之间的通信链接。

  2.作用:代表应用程序和 URL 之间的通信链接;

  3. 创建一个到 URL 的连接需要几个步骤:

  (1)通过在 URL 上调用 openConnection 方法创建连接对象;

  (2)处理设置参数和一般请求属性;

  (3)使用 connect 方法建立到远程对象的实际连接;

  (4)远程对象变为可用。远程对象的头字段和内容变为可访问;

三.HttpURLConnection

  1 每个 HttpURLConnection 实例都可用于生成单个请求,但是其他实例可以透明地共享连接到 HTTP 服务器的基础网络。请求后在 HttpURLConnection 的 InputStream 或 OutputStream 上调用 close() 方法可以释放与此实例关联的网络资源,但对共享的持久连接没有任何影响。如果在调用 disconnect() 时持久连接空闲,则可能关闭基础套接字;

  2. 对于Connection的对象的设置很重要,是有顺序的;

    connection的设置(很多set函数)必须在函数执行之前完成;Outputstream的写操作必须在Inputstream读操作之前。

四.用法

    1.创建连接:

    URL url =newURL("http://localhost:8080/TestHttpURLConnectionPro/index.jsp");

    HttpURLConnection conn = ( HttpURLConnection) url.openConnection();

  2.设置Connection参数:

    conn.setRequestMethod( "POST");// 提交模式    conn.setRequestProperty( "Content-Type","application/json;charset=UTF-8");//设置请求属性    conn.setConnectTimeout(100000);//连接超时 单位毫秒    conn.setReadTimeout(100000);//读取超时 单位毫秒    conn.setDoOutput( true);//是否输入参数    conn.setDoInput( true);//是否读取参数3.连接:

    conn.connect();

  4.获取写数据流:

    OutputStream outStrm = httpUrlConnection.getOutputStream();

  5.写数据:

    outStrm.write(bytes); // 输入参数    outStrm. flush();

    outStrm.close();

  6.读数据:

    InputStream in= conn.getInputStream();

    intcount=conn.getContentLength();//获取远程资源长度byte[] buffer =newbyte[count];

    ByteArrayOutputStream baos =new ByteArrayOutputStream();

    for(intlen =0; (len =in.read(buffer)) >0;) {

          baos.write(buffer, 0, len);

    }

    String returnValue =newString(baos.toByteArray(),"utf-8" );

    reg= JSON. parseObject(returnValue, ReturnMessage.class );

    baos.flush();

    baos.close();

    in.close();

    conn.disconnect();

HttpURLConnection 用法详解 - 皓月天边 - 博客园

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com