我正在用Java构建应用程序,在https://speedtest.net类站点中,我需要了解下载/上传速度。是否有任何API / java内置方法可以用来获取速度。谢谢!
这里您有12个存储库来解决您的问题。 internet-speed-checker
您可以使用JSpeedTest
:
JSpeedTest
SpeedTestSocket speedTestSocket = new SpeedTestSocket();
// add a listener to wait for speedtest completion and progress
speedTestSocket.addSpeedTestListener(new ISpeedTestListener() {
@Override
public void onCompletion(SpeedTestReport report) {
// called when download/upload is complete
System.out.println("[COMPLETED] rate in octet/s : " + report.getTransferRateOctet());
System.out.println("[COMPLETED] rate in bit/s : " + report.getTransferRateBit());
}
@Override
public void onError(SpeedTestError speedTestError, String errorMessage) {
// called when a download/upload error occur
}
@Override
public void onProgress(float percent, SpeedTestReport report) {
// called to notify download/upload progress
System.out.println("[PROGRESS] progress : " + percent + "%");
System.out.println("[PROGRESS] rate in octet/s : " + report.getTransferRateOctet());
System.out.println("[PROGRESS] rate in bit/s : " + report.getTransferRateBit());
}
});
speedTestSocket.startDownload("http://ipv4.ikoula.testdebit.info/1M.iso");
speedTestSocket.startUpload("http://ipv4.ikoula.testdebit.info/", 1000000);
speedTestSocket.startFixedDownload("http://ipv4.ikoula.testdebit.info/100M.iso", 10000);
Maven依赖项:
speedTestSocket.startFixedUpload("http://ipv4.ikoula.testdebit.info/", 10000000, 10000);
我不认为已经有现成的API用于此。
此解决方案的设置是客户端-服务器设计
<!-- https://mvnrepository.com/artifact/fr.bmartel/jspeedtest -->
<dependency>
<groupId>fr.bmartel</groupId>
<artifactId>jspeedtest</artifactId>
<version>1.32.1</version>
</dependency>
您也可以让客户端定期进行此计算,并显示客户端在每个更新事件上的速度。
希望这会有所帮助。 :)