分享

Java 模拟并发访问

 昵称10504424 2013-02-19
  1. import java.io.DataInputStream;         
  2. import java.io.DataOutputStream;             
  3. import java.net.HttpURLConnection;         
  4. import java.net.URL;             
  5. import java.util.Map;    
  6. import java.util.Properties;   
  7.   
  8. public class NetUtils   
  9. {   
  10.        
  11.     public static final String CHARACTER_ENCODING = "UTF-8";         
  12.   public static final String PATH_SIGN = "/";         
  13.   public static final String METHOD_POST = "POST";         
  14.   public static final String METHOD_GET = "GET";         
  15.   public static final String CONTENT_TYPE = "Content-Type";         
  16.       
  17.   /**      
  18.    * 以POST方式向指定地址发送数据包请求,并取得返回的数据包      
  19.    *       
  20.    * @param urlString      
  21.    * @param requestData      
  22.    * @return 返回数据包      
  23.    * @throws Exception      
  24.    */        
  25.   public static byte[] requestPost(String urlString, byte[] requestData)         
  26.           throws Exception   
  27.   {         
  28.       Properties requestProperties = new Properties();         
  29.       requestProperties.setProperty(CONTENT_TYPE,         
  30.               "application/octet-stream; charset=utf-8");         
  31.       
  32.       return requestPost(urlString, requestData, requestProperties);         
  33.   }         
  34.   
  35.   /**      
  36.    * 以POST方式向指定地址发送数据包请求,并取得返回的数据包      
  37.    *       
  38.    * @param urlString      
  39.    * @param requestData      
  40.    * @param requestProperties      
  41.    * @return 返回数据包      
  42.    * @throws Exception      
  43.    */        
  44.   public static byte[] requestPost(String urlString, byte[] requestData,         
  45.           Properties requestProperties) throws Exception   
  46.   {   
  47.       byte[] responseData = null;         
  48.       HttpURLConnection con = null;         
  49.       
  50.       try {         
  51.           URL url = new URL(urlString);         
  52.           con = (HttpURLConnection) url.openConnection();         
  53.           //设置请求属性   
  54.           if ((requestProperties != null) && (requestProperties.size() > 0))   
  55.           {         
  56.               for (Map.Entry<Object, Object> entry : requestProperties.entrySet())   
  57.               {         
  58.                   String key = String.valueOf(entry.getKey());         
  59.                   String value = String.valueOf(entry.getValue());         
  60.                   con.setRequestProperty(key, value);         
  61.               }         
  62.           }         
  63.       
  64.           con.setRequestMethod(METHOD_POST); // 置为POST方法         
  65.       
  66.           con.setDoInput(true); // 开启输入流         
  67.           con.setDoOutput(true); // 开启输出流         
  68.       
  69.           // 如果请求数据不为空,输出该数据。         
  70.           if (requestData != null)   
  71.           {         
  72.               DataOutputStream dos = new DataOutputStream(con.getOutputStream());         
  73.               dos.write(requestData);   
  74.               dos.flush();         
  75.               dos.close();         
  76.           }         
  77.       
  78.           int length = con.getContentLength();         
  79.           // 如果回复消息长度不为-1,读取该消息。         
  80.           if (length != -1)   
  81.           {         
  82.               DataInputStream dis = new DataInputStream(con.getInputStream());         
  83.               responseData = new byte[length];         
  84.               dis.readFully(responseData);         
  85.               dis.close();         
  86.           }         
  87.       }   
  88.       catch (Exception e)   
  89.       {         
  90.           throw e;         
  91.       }   
  92.       finally  
  93.       {         
  94.           if (con != null)   
  95.           {         
  96.               con.disconnect();         
  97.               con = null;         
  98.           }         
  99.       }         
  100.       return responseData;         
  101.   }         
  102.   
  103. }  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多