code: public String generateForm(HttpMessage msg) throws UnsupportedEncodingException {
  		String requestUri = msg.getRequestHeader().getURI().toString();
  		StringBuilder sb = new StringBuilder(300);
  		sb.append("<html>\n");
  		sb.append("<body>\n");
  		sb.append("<h3>");
  		sb.append(requestUri);
  		sb.append("</h3>");
  		sb.append("<form id=\"f1\" method=\"POST\" action=\"").append(requestUri).append("\">\n");
  		sb.append("<table>\n");
  		
  		TreeSet<HtmlParameter> params = msg.getFormParams();
  		Iterator<HtmlParameter> iter = params.iterator();
  		while (iter.hasNext()) {
  			HtmlParameter htmlParam = iter.next();
  			String name = URLDecoder.decode(htmlParam.getName(), "UTF-8");
  			String value = URLDecoder.decode(htmlParam.getValue(), "UTF-8");
  			sb.append("<tr><td>\n");
  			sb.append(name);
  			sb.append("<td>");
  			sb.append("<input name=\"");
  			sb.append(name);
  			sb.append("\" value=\"");
  			sb.append(value);
  			sb.append("\" size=\"100\">");
  			sb.append("</tr>\n");
  		}
  
  		sb.append("</table>\n");
  		sb.append("<input id=\"submit\" type=\"submit\" value=\"Submit\"/>\n");
  		sb.append("</form>\n");
  		sb.append("</body>\n");
  		sb.append("</html>\n");
  
  		return sb.toString();
  	}
docs: Generates a HTML form from the given message.
  
  @param msg the message used to generate the HTML form, must not be {@code null}.
  @return a string containing the HTML form, never {@code null}.
  @throws UnsupportedEncodingException if an error occurred while encoding the values of the form.
  @since 2.7.0