• 技术文章 >Java >java教程

    Java 模拟并发访问

    巴扎黑巴扎黑2016-12-20 13:35:37原创840
    类:NetUtils.java

    import java.io.DataInputStream;      
    import java.io.DataOutputStream;          
    import java.net.HttpURLConnection;      
    import java.net.URL;          
    import java.util.Map; 
    import java.util.Properties;
    public class NetUtils
    {
    public static final String CHARACTER_ENCODING = "UTF-8";      
      public static final String PATH_SIGN = "/";      
      public static final String METHOD_POST = "POST";      
      public static final String METHOD_GET = "GET";      
      public static final String CONTENT_TYPE = "Content-Type";      
       
      /**    
       * 以POST方式向指定地址发送数据包请求,并取得返回的数据包    
       *     
       * @param urlString    
       * @param requestData    
       * @return 返回数据包    
       * @throws Exception    
       */     
      public static byte[] requestPost(String urlString, byte[] requestData)      
              throws Exception
      {      
          Properties requestProperties = new Properties();      
          requestProperties.setProperty(CONTENT_TYPE,      
                  "application/octet-stream; charset=utf-8");      
       
          return requestPost(urlString, requestData, requestProperties);      
      }      
      /**    
       * 以POST方式向指定地址发送数据包请求,并取得返回的数据包    
       *     
       * @param urlString    
       * @param requestData    
       * @param requestProperties    
       * @return 返回数据包    
       * @throws Exception    
       */     
      public static byte[] requestPost(String urlString, byte[] requestData,      
              Properties requestProperties) throws Exception
      {
          byte[] responseData = null;      
          HttpURLConnection con = null;      
       
          try {      
              URL url = new URL(urlString);      
              con = (HttpURLConnection) url.openConnection();      
              //设置请求属性
              if ((requestProperties != null) && (requestProperties.size() > 0))
              {      
                  for (Map.Entry<Object, Object> entry : requestProperties.entrySet())
                  {      
                      String key = String.valueOf(entry.getKey());      
                      String value = String.valueOf(entry.getValue());      
                      con.setRequestProperty(key, value);      
                  }      
              }      
       
              con.setRequestMethod(METHOD_POST); // 置为POST方法      
       
              con.setDoInput(true); // 开启输入流      
              con.setDoOutput(true); // 开启输出流      
       
              // 如果请求数据不为空,输出该数据。      
              if (requestData != null)
              {      
                  DataOutputStream dos = new DataOutputStream(con.getOutputStream());      
                  dos.write(requestData);
                  dos.flush();      
                  dos.close();      
              }      
       
              int length = con.getContentLength();      
              // 如果回复消息长度不为-1,读取该消息。      
              if (length != -1)
              {      
                  DataInputStream dis = new DataInputStream(con.getInputStream());      
                  responseData = new byte[length];      
                  dis.readFully(responseData);      
                  dis.close();      
              }      
          }
          catch (Exception e)
          {      
              throw e;      
          }
          finally
          {      
              if (con != null)
              {      
                  con.disconnect();      
                  con = null;      
              }      
          }      
          return responseData;      
      }      
    }


    php入门到就业线上直播课:查看学习

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    上一篇:Java的类装载器和命名空间 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• Java数据结构之单链表与OJ题• 详细介绍Java正则表达式之单字符匹配和预定义字符• Java总结分享之反射、枚举、Lambda表达式• 实例详解Java顺序表和链表• 深入分析Java的序列化与反序列化
    1/1

    PHP中文网