zoukankan      html  css  js  c++  java
  • HttpURLConnection 用法详解

    
    
    一.继承关系
    
       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 = new URL("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();
    
         int count=conn.getContentLength();//获取远程资源长度
    
         byte[] buffer = new byte[count];
    
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
    
         for ( int len = 0; (len = in.read(buffer)) > 0;) {
    
              baos.write(buffer, 0, len);
    
         }
    
         String returnValue = new String(baos.toByteArray(), "utf-8" );
    
         reg= JSON. parseObject(returnValue, ReturnMessage.class );
    
         baos.flush();
    
         baos.close();
    
         in.close();
    
         conn.disconnect();
    
     

    HttpURLConnection 用法详解

    一.继承关系

    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 = new URL("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();

    int count=conn.getContentLength();//获取远程资源长度

    byte[] buffer = newbyte[count];

    ByteArrayOutputStream baos = new ByteArrayOutputStream();

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

    baos.write(buffer, 0, len);

    }

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

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

    baos.flush();

    baos.close();

    in.close();

    conn.disconnect();

     

  • 相关阅读:
    技术学习沙龙
    mysql升级5.5
    mysql用户权限管理的问题
    dwz(jui)刷新当前dialog的方法
    perl进程管理一例
    cron执行service
    tp数据库表大写命名的一些问题
    php执行多个存储过程
    thinkphp使用中遇到的问题
    html5 ajax 文件上传
  • 原文地址:https://www.cnblogs.com/KdeS/p/12059699.html
Copyright © 2011-2022 走看看