1 4 package com.tctest.performance.http.load; 5 6 import org.apache.commons.httpclient.HttpClient; 7 import org.apache.commons.httpclient.HttpMethod; 8 import org.apache.commons.httpclient.HttpState; 9 import org.apache.commons.httpclient.methods.GetMethod; 10 11 import java.io.IOException ; 12 13 16 17 public class SessionWorkItem extends ExpiringWorkItem { 18 19 private final String url; 20 private final HttpMethod method; 21 private final boolean gatherStatistic; 22 private final HttpClientAdapter clientAdapter; 23 24 public SessionWorkItem(HttpClientAdapter clientAdapter, String urlPart, boolean gatherStatistic, long expire) { 25 super(expire); 26 this.clientAdapter = clientAdapter; 27 this.url = "http://" + clientAdapter.getHost() + urlPart; 28 this.method = new GetMethod(url); 29 this.gatherStatistic = gatherStatistic; 30 } 31 32 public void executeImpl(HttpClient httpClient, StatsCollector collector) throws IOException { 33 HttpState state = clientAdapter.getSession(); 34 httpClient.setState(state); 35 36 long startTime = System.currentTimeMillis(); 37 try { 38 int statusCode = httpClient.executeMethod(method); 39 if (gatherStatistic) { 40 collector.addStat(new ResponseStatistic(startTime, System.currentTimeMillis(), url, statusCode)); 41 } 42 consumeResponse(method); 43 } finally { 44 method.releaseConnection(); 45 } 46 } 47 48 } | Popular Tags |