我在寫一個測試上傳速度連接到服務器的java類。我想檢查5秒內可以發送多少數據。java url連接,等待通過輸出流發送的數據
我寫過一個類,它創建一個URL,創建一個連接,並通過outPutStream發送數據。有一個循環將數據寫入數據流5秒鐘。但是,我無法看到數據何時發送(我將數據寫入輸出流,但數據尚未發送)。我如何等待,直到數據真的發送到服務器? 這裏去我的代碼(不工作):
URL u = new URL(url)
HttpURLConnection uc = (HttpURLConnection) u.openConnection();
uc.setDoOutput(true);
uc.setDoInput(true);
uc.setUseCaches(false);
uc.setDefaultUseCaches(false);
uc.setRequestMethod("POST");
uc.setRequestProperty("Content-Type", "application/octet-stream");
uc.connect();
st.start();
// Send the request
OutputStream os = uc.getOutputStream();
//This while is incorrect cause it does not wait for data beeing sent
while (st.getElapsedTime() < miliSeconds) {
os.write(buffer);
os.flush();
st.addSize(buffer.length);
}
os.close();
感謝
你怎麼能斷言它不被髮送? ...已經發送並已收到回覆之間的區別 – dagnelies 2011-01-07 10:48:51
好吧,對不起,我認爲我需要的是服務器已收到響應。 如果我現在寫它是如何寫的,那麼應用程序會向寫入器寫入大量數據,並且這個過程將比預期的時間多得多。 – Mateu 2011-01-07 11:05:39