public class Test { public static String requestUrl = "http://localhost/SpringMvc/test.do"; public static void main(String[] args) { TestVo test = new TestVo(); test.setName("baichuanyu"); test.setAge(20); HttpURLConnection httpUrlConn = null; InputStream inputStream = null; InputStreamReader inputStreamReader = null; BufferedReader bufferedReader = null; ObjectOutputStream oos = null; StringBuffer buffer = new StringBuffer(); try { URL url = new URL(requestUrl); httpUrlConn = (HttpURLConnection)url.openConnection(); // 設置content_type=SERIALIZED_OBJECT // 若是不設此項,在傳送序列化對象時,當WEB服務默認的不是這種類型時可能拋java.io.EOFException httpUrlConn.setRequestProperty("Content-Type","application/x-java-serialized-object"); httpUrlConn.setConnectTimeout(10000); httpUrlConn.setReadTimeout(10000); // 設置是否向httpUrlConn輸出,由於是post請求,參數要放在http正文內,所以須要設爲true, 默認狀況下是false httpUrlConn.setDoOutput(true); // 設置是否從httpUrlConn讀入,默認狀況下是true httpUrlConn.setDoInput(true); // 不使用緩存 httpUrlConn.setUseCaches(false); // 設置請求方式,默認是GET httpUrlConn.setRequestMethod("POST"); httpUrlConn.connect(); if (test != null) { // 此處getOutputStream會隱含的進行connect,即:如同調用上面的connect()方法, // 因此在開發中不調用上述的connect()也能夠,不過建議最好顯式調用 // write object(impl Serializable) using ObjectOutputStream oos = new ObjectOutputStream(httpUrlConn.getOutputStream()); oos.writeObject(test); oos.flush(); // outputStream不是一個網絡流,充其量是個字符串流,往裏面寫入的東西不會當即發送到網絡, // 而是存在於內存緩衝區中,待outputStream流關閉時,根據輸入的內容生成http正文。因此這裏的close是必須的 oos.close(); } // 將返回的輸入流轉換成字符串 // 不管是post仍是get,http請求實際上直到HttpURLConnection的getInputStream()這個函數裏面才正式發送出去 inputStream = httpUrlConn.getInputStream();//注意,實際發送請求的代碼段就在這裏 inputStreamReader = new InputStreamReader(inputStream, "UTF-8"); bufferedReader = new BufferedReader(inputStreamReader); String str = null; while ((str = bufferedReader.readLine()) != null) { buffer.append(str); } } catch (Exception e) { System.out.println(e); } finally { try { bufferedReader.close(); inputStreamReader.close(); inputStream.close(); oos.close(); if (httpUrlConn != null) { httpUrlConn.disconnect(); } } catch (Exception e) { } } } }
網絡傳輸:經過推送改變網站中好比map中存儲的對象 java
@RequestMapping(value = "/test", method = RequestMethod.POST) public void javaSerialize(HttpServletResponse response,HttpServletRequest request) { try { ObjectInputStream ois = new ObjectInputStream(request.getInputStream()); TestVo user = (TestVo) ois.readObject(); System.out.println(user.getName()+":"+user.getAge()); map.put("user", user); PrintWriter w = response.getWriter(); w.print("已收到"); w.flush(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }