sebb 2003/11/20 09:37:44
Modified: src/protocol/http/org/apache/jmeter/protocol/http/sampler
HTTPSampler.java
Log:
Separate response headers from the data
Revision Changes Path
1.59 +43 -47
jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java
Index: HTTPSampler.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -r1.58 -r1.59
--- HTTPSampler.java 20 Nov 2003 02:37:56 -0000 1.58
+++ HTTPSampler.java 20 Nov 2003 17:37:44 -0000 1.59
@@ -681,9 +681,12 @@
{
StringBuffer sb = new StringBuffer();
sb.append(this.toString());
- sb.append("\nCookie Data:\n");
- sb.append(cookies);
+ if (cookies != null){ //TODO put these in requestHeaders.
+ sb.append("\nCookie Data:\n");
+ sb.append(cookies);
+ }
res.setSamplerData(sb.toString());
+ res.setRequestHeaders("TODO");//TODO
}
setConnectionAuthorization(conn, u, getAuthManager());
return conn;
@@ -814,42 +817,39 @@
w.close();
return w.toByteArray();
}
-
- /**
- * Gets the ResponseHeaders from the URLConnection, save them to the
- * SampleResults object.
- *
- * @param conn connection from which the headers are read
- * @param res where the headers read are stored
- */
- protected byte[] getResponseHeaders(
- HttpURLConnection conn,
- SampleResult res)
- throws IOException
- {
- StringBuffer headerBuf = new StringBuffer();
- headerBuf.append(conn.getHeaderField(0).substring(0, 8));
- headerBuf.append(" ");
- headerBuf.append(conn.getResponseCode());
- headerBuf.append(" ");
- headerBuf.append(conn.getResponseMessage());
- headerBuf.append("\n");
-
- for (int i = 1; conn.getHeaderFieldKey(i) != null; i++)
- {
- if (!conn
- .getHeaderFieldKey(i)
- .equalsIgnoreCase("transfer-encoding"))
- {
- headerBuf.append(conn.getHeaderFieldKey(i));
- headerBuf.append(": ");
- headerBuf.append(conn.getHeaderField(i));
- headerBuf.append("\n");
- }
- }
- headerBuf.append("\n");
- return headerBuf.toString().getBytes("8859_1");
- }
+ /**
+ * Gets the ResponseHeaders from the URLConnection
+ *
+ * @param conn connection from which the headers are read
+ *
+ * @return string containing the headers, one per line
+ */
+ protected String getResponseHeaders(
+ HttpURLConnection conn)
+ throws IOException
+ {
+ StringBuffer headerBuf = new StringBuffer();
+ headerBuf.append(conn.getHeaderField(0).substring(0, 8));
+ headerBuf.append(" ");
+ headerBuf.append(conn.getResponseCode());
+ headerBuf.append(" ");
+ headerBuf.append(conn.getResponseMessage());
+ headerBuf.append("\n");
+
+ for (int i = 1; conn.getHeaderFieldKey(i) != null; i++)
+ {
+ if (!conn //TODO - why is this not saved?
+ .getHeaderFieldKey(i)
+ .equalsIgnoreCase("transfer-encoding"))
+ {
+ headerBuf.append(conn.getHeaderFieldKey(i));
+ headerBuf.append(": ");
+ headerBuf.append(conn.getHeaderField(i));
+ headerBuf.append("\n");
+ }
+ }
+ return headerBuf.toString();
+ }
/**
* Extracts all the required cookies for that particular URL request and set
@@ -1196,20 +1196,16 @@
HttpURLConnection conn)
throws IOException, FileNotFoundException
{
- res.setDataType(SampleResult.TEXT);
byte[] ret = readResponse(conn);
- byte[] head = getResponseHeaders(conn, res);
time = System.currentTimeMillis() - time;
String ct = conn.getHeaderField("Content-type");
- res.setContentType(ct);
+ res.setContentType(ct);
+ res.setResponseHeaders(getResponseHeaders(conn));
+ res.setResponseData(ret);
if (ct.startsWith("image/")){
res.setDataType(SampleResult.BINARY);
- res.setResponseData(ret);
} else {
- byte[] complete = new byte[ret.length + head.length];
- System.arraycopy(head, 0, complete, 0, head.length);
- System.arraycopy(ret, 0, complete, head.length, ret.length);
- res.setResponseData(complete);
+ res.setDataType(SampleResult.TEXT);
}
res.setSuccessful(true);
return time;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]