本程序主要测试Http的下载速率
import java.io.IOException;
import java.io.InputStream;
import java.util.Timer;
import java.util.TimerTask;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
//CloseableHttpClient,CloseableHttpResponse
/*
* HttpGet--->HttpRequestBase---->AbstractExecutionAwareRequest(类)
* ----->HttpUriRequest--->HttpRequest(接口)
* */
public class MainApp {
//设立线程的共享的数据
private static long counter=0;
private static void displayThread()
{
//显示进程
Timer t=new Timer();
TimerTask task=new TimerTask() {
private long temp=0;
private long speed=0;
public void run() {
speed=counter-temp;
temp=counter;
System.out.print("spped:"+speed/1000+"KB/s");
System.out.println("\t Bytes:"+counter);
}
};
t.schedule(task, 2000,1000);//时间为毫秒,1秒=1000毫秒
}
public static void main(String[] args) throws InterruptedException, ClientProtocolException, IOException
{
displayThread();
HttpClient httpclient = HttpClients.createDefault();
String url="http://releases.ubuntu.com/14.04.2/ubuntu-14.04.2-desktop-amd64.iso";
HttpGet request=new HttpGet(url);
request.addHeader("Accept", "*/*");
//显示请求头
System.out.println(request.getRequestLine().toString());
for(Header h:request.getAllHeaders())
System.out.println(h.getName()+":"+h.getValue());
HttpResponse response=httpclient.execute(request);
//显示响应头
System.out.println(response.getStatusLine().toString());
for(Header h:response.getAllHeaders())
System.out.println(h.getName()+":"+h.getValue());
//显示下载速率
HttpEntity he=response.getEntity();
InputStream is=he.getContent();
while(is.read()!=-1)
{
counter++;
}
}
}