Ich schreibe eine Java-Klasse, die Upload-Geschwindigkeit-Verbindung zu einem Server testet. Ich möchte prüfen, wie viele Daten in 5 Sekunden gesendet werden können.Java-URL-Verbindung, warten auf Daten durch den Ausgangsstrom gesendet werden
Ich habe eine Klasse geschrieben, die eine URL erstellt, eine Verbindung erstellt und Daten über den outPutStream sendet. Es gibt eine Schleife, wo ich für 5 Sekunden Daten in den Stream geschrieben habe. Allerdings kann ich nicht sehen, wann Daten gesendet wurden (Ich habe Daten in den Ausgabestream geschrieben, aber die Daten werden noch nicht gesendet). Wie kann ich warten bis Daten wirklich an den Server gesendet werden? geht hier meinen Code (was nicht funktioniert):
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();
Dank
Wie können Sie feststellen, dass es nicht gesendet wird? ... es gibt einen Unterschied zwischen dem Senden und dem Erhalt der Antwort – dagnelies
Ok, tut mir leid, ich denke, dass der Server die Antwort erhalten hat. Wenn ich es so mache, wie es jetzt geschrieben ist, schreibt die Anwendung viele Daten an den Schreiber, und der Prozess wird viel mehr als die gewünschte Zeit dauern. – Mateu