You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2007/03/23 20:56:44 UTC
svn commit: r521883 - in /jakarta/jmeter/branches/rel-2-2:
src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java
src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler2.java
xdocs/changes.xml
Author: sebb
Date: Fri Mar 23 12:56:43 2007
New Revision: 521883
URL: http://svn.apache.org/viewvc?view=rev&rev=521883
Log:
Bug 41928 - Make all request headers sent by HTTP Request sampler appear in sample result
Modified:
jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java
jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler2.java
jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml
Modified: jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java?view=diff&rev=521883&r1=521882&r2=521883
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java Fri Mar 23 12:56:43 2007
@@ -29,6 +29,9 @@
import java.net.URL;
import java.net.URLConnection;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
import java.util.zip.GZIPInputStream;
import org.apache.jmeter.protocol.http.control.AuthManager;
@@ -179,25 +182,27 @@
}
conn.setRequestMethod(method);
- String hdrs = setConnectionHeaders(conn, u, getHeaderManager());
+ setConnectionHeaders(conn, u, getHeaderManager());
String cookies = setConnectionCookie(conn, u, getCookieManager());
- if (res != null) {
- res.setURL(u);
- res.setHTTPMethod(method);
- res.setRequestHeaders(hdrs);
- res.setCookies(cookies);
- if (method.equals(POST)) {
- res.setQueryString(getQueryString());
- }
- }
+ setConnectionAuthorization(conn, u, getAuthManager());
- setConnectionAuthorization(conn, u, getAuthManager());
if (method.equals(POST)) {
+ if(res != null) {
+ res.setQueryString(getQueryString());
+ }
setPostHeaders(conn);
} else if (method.equals(PUT)) {
setPutHeaders(conn);
}
+
+ if (res != null) {
+ res.setURL(u);
+ res.setHTTPMethod(method);
+ res.setRequestHeaders(getConnectionHeaders(conn));
+ res.setCookies(cookies);
+ }
+
return conn;
}
@@ -338,10 +343,9 @@
* @param headerManager
* the <code>HeaderManager</code> containing all the cookies
* for this <code>UrlConfig</code>
- * @return the headers as a string
*/
- private String setConnectionHeaders(HttpURLConnection conn, URL u, HeaderManager headerManager) {
- StringBuffer hdrs = new StringBuffer(100);
+ private void setConnectionHeaders(HttpURLConnection conn, URL u, HeaderManager headerManager) {
+ // Set all the headers from the HeaderManager
if (headerManager != null) {
CollectionProperty headers = headerManager.getHeaders();
if (headers != null) {
@@ -351,15 +355,38 @@
String n = header.getName();
String v = header.getValue();
conn.setRequestProperty(n, v);
- hdrs.append(n);
- hdrs.append(": "); // $NON-NLS-1$
- hdrs.append(v);
- hdrs.append("\n"); // $NON-NLS-1$
}
}
}
- return hdrs.toString();
}
+
+ /**
+ * Get all the headers for the <code>HttpURLConnection</code> passed in
+ *
+ * @param conn
+ * <code>HttpUrlConnection</code> which represents the URL
+ * request
+ * @return the headers as a string
+ */
+ private String getConnectionHeaders(HttpURLConnection conn) {
+ // Get all the request properties, which are the headers set on the connection
+ StringBuffer hdrs = new StringBuffer(100);
+ Map requestHeaders = conn.getRequestProperties();
+ Set headerFields = requestHeaders.keySet();
+ for(Iterator i = headerFields.iterator(); i.hasNext();) {
+ String headerKey = (String)i.next();
+ // Exclude the COOKIE header, since cookie is reported separately in the sample
+ if(!HEADER_COOKIE.equalsIgnoreCase(headerKey)) {
+ String headerValue = conn.getRequestProperty(headerKey);
+ hdrs.append(headerKey);
+ hdrs.append(": "); // $NON-NLS-1$
+ hdrs.append(headerValue);
+ hdrs.append("\n"); // $NON-NLS-1$
+ }
+ }
+
+ return hdrs.toString();
+ }
/**
* Extracts all the required authorization for that particular URL request
Modified: jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler2.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler2.java?view=diff&rev=521883&r1=521882&r2=521883
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler2.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler2.java Fri Mar 23 12:56:43 2007
@@ -361,17 +361,16 @@
httpMethod.setRequestHeader(HEADER_CONNECTION, CONNECTION_CLOSE);
}
- String hdrs = setConnectionHeaders(httpMethod, u, getHeaderManager());
+ setConnectionHeaders(httpMethod, u, getHeaderManager());
String cookies = setConnectionCookie(httpMethod, u, getCookieManager());
- if (res != null) {
+ setConnectionAuthorization(httpClient, u, getAuthManager());
+
+ if (res != null) {
res.setURL(u);
- res.setRequestHeaders(hdrs);
res.setCookies(cookies);
}
- setConnectionAuthorization(httpClient, u, getAuthManager());
-
return httpClient;
}
@@ -434,10 +433,9 @@
* @param headerManager
* the <code>HeaderManager</code> containing all the cookies
* for this <code>UrlConfig</code>
- * @return the headers as a string
*/
- String setConnectionHeaders(HttpMethod method, URL u, HeaderManager headerManager) {
- StringBuffer hdrs = new StringBuffer(100);
+ private void setConnectionHeaders(HttpMethod method, URL u, HeaderManager headerManager) {
+ // Set all the headers from the HeaderManager
if (headerManager != null) {
CollectionProperty headers = headerManager.getHeaders();
if (headers != null) {
@@ -453,16 +451,36 @@
if (! HEADER_CONTENT_LENGTH.equalsIgnoreCase(n)){
String v = header.getValue();
method.addRequestHeader(n, v);
- hdrs.append(n);
- hdrs.append(": "); // $NON-NLS-1$
- hdrs.append(v);
- hdrs.append("\n"); // $NON-NLS-1$
}
}
}
}
- return hdrs.toString();
}
+
+ /**
+ * Get all the request headers for the <code>HttpMethod</code>
+ *
+ * @param method
+ * <code>HttpMethod</code> which represents the request
+ * @return the headers as a string
+ */
+ private String getConnectionHeaders(HttpMethod method) {
+ // Get all the request headers
+ StringBuffer hdrs = new StringBuffer(100);
+ Header[] requestHeaders = method.getRequestHeaders();
+ for(int i = 0; i < requestHeaders.length; i++) {
+ // Exclude the COOKIE header, since cookie is reported separately in the sample
+ if(!HEADER_COOKIE.equalsIgnoreCase(requestHeaders[i].getName())) {
+ hdrs.append(requestHeaders[i].getName());
+ hdrs.append(": "); // $NON-NLS-1$
+ hdrs.append(requestHeaders[i].getValue());
+ hdrs.append("\n"); // $NON-NLS-1$
+ }
+ }
+
+ return hdrs.toString();
+ }
+
/**
* Extracts all the required authorization for that particular URL request
@@ -573,6 +591,8 @@
} else if (method.equals(PUT)) {
setPutHeaders((PutMethod) httpMethod);
}
+
+ res.setRequestHeaders(getConnectionHeaders(httpMethod));
int statusCode = client.executeMethod(httpMethod);
Modified: jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml?view=diff&rev=521883&r1=521882&r2=521883
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml (original)
+++ jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml Fri Mar 23 12:56:43 2007
@@ -193,6 +193,7 @@
<li>Bug 41903 - ViewResultsFullVisualizer : status column looks bad when you do copy and paste</li>
<li>Bug 41837 - Parameter value corruption in proxy</li>
<li>Bug 41905 - Can't cut/paste/select Header Manager fields in Java 1.6</li>
+<li>Bug 41928 - Make all request headers sent by HTTP Request sampler appear in sample result</li>
</ul>
<h3>Version 2.2</h3>
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org