1. 程式人生 > >Android+HttpURLConnection+ObjectOutputStream+java.io.EOFException

Android+HttpURLConnection+ObjectOutputStream+java.io.EOFException

	url = new URL(str_remotecallservlerurl); //定義遠端CallServlet的url!!!
	conn = (HttpURLConnection)url.openConnection(); //
	conn.setDoInput(true);
	conn.setDoOutput(true);
	conn.setUseCaches(false);
	conn.setConnectTimeout(_readTimeOut * 1000); //只等8秒
	conn.setReadTimeout(_readTimeOut * 1000); //
	// 設定傳送的內容型別是可序列化的java物件    (如果不設此項,在傳送序列化物件時,當WEB服務預設的不是這種型別時可能拋java.io.EOFException)
	conn.setRequestProperty("Content-type", "application/x-java-serialized-object");
	conn.connect();

	OutputStream request_out = conn.getOutputStream(); ///
	ObjectOutputStream objStream = new ObjectOutputStream(request_out); //輸出物件流!!
	objStream.writeObject(物件); //真正輸出壓縮流的地方!!!即開始網路通訊了.........
	objStream.flush(); 

	Object responseObj = null; //
      	int responseCode = conn.getResponseCode();
   	if (responseCode == HttpURLConnection.HTTP_OK) {
    		InputStream response_in = conn.getInputStream(); //取得輸入流...
     		ObjectInputStream request_in_objStream = new ObjectInputStream(response_in);
     		responseObj = request_in_objStream.readObject(); //
    		response_in.close(); //關閉輸出流....
        	}