From: <bra...@us...> - 2009-05-20 02:49:41
|
Revision: 2727 http://archive-access.svn.sourceforge.net/archive-access/?rev=2727&view=rev Author: bradtofel Date: 2009-05-20 02:49:24 +0000 (Wed, 20 May 2009) Log Message: ----------- BUGFIX(unreported): Was assigning the content-encoding before setting headers, allowing original headers to override our setting. Now we set the encoding after setting the other headers. Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/TextReplayRenderer.java Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/TextReplayRenderer.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/TextReplayRenderer.java 2009-05-20 02:47:33 UTC (rev 2726) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/TextReplayRenderer.java 2009-05-20 02:49:24 UTC (rev 2727) @@ -95,10 +95,11 @@ // the "Content-Type" HTTP header, then Tomcat will use the default.. // who knows what that is, or what that will do to the page.. // let's try explicitly setting it to what we used: - httpResponse.setCharacterEncoding(page.getCharSet()); + headers.put("X-Wayback-Guessed-Charset", page.getCharSet()); // send back the headers: HttpHeaderOperation.sendHeaders(headers, httpResponse); + httpResponse.setCharacterEncoding(page.getCharSet()); page.writeToOutputStream(httpResponse.getOutputStream()); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bra...@us...> - 2010-04-30 21:15:53
|
Revision: 3084 http://archive-access.svn.sourceforge.net/archive-access/?rev=3084&view=rev Author: bradtofel Date: 2010-04-30 21:15:45 +0000 (Fri, 30 Apr 2010) Log Message: ----------- FEATURE: made HTTP Header guessedCharsetHeader field bean configurable, and changed it's default value. Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/TextReplayRenderer.java Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/TextReplayRenderer.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/TextReplayRenderer.java 2010-04-30 02:16:27 UTC (rev 3083) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/TextReplayRenderer.java 2010-04-30 21:15:45 UTC (rev 3084) @@ -50,6 +50,9 @@ */ public abstract class TextReplayRenderer implements ReplayRenderer { + private static String GUESSED_CHARSET_HEADER = "X-Archive-Guessed-Charset"; + + private String guessedCharsetHeader = GUESSED_CHARSET_HEADER; private List<String> jspInserts = null; private HttpHeaderProcessor httpHeaderProcessor; private CharsetDetector charsetDetector = new StandardCharsetDetector(); @@ -89,16 +92,20 @@ // set the corrected length: int bytes = page.getBytes().length; + headers.put(HttpHeaderOperation.HTTP_LENGTH_HEADER, String.valueOf(bytes)); + if(guessedCharsetHeader != null) { + headers.put(guessedCharsetHeader, page.getCharSet()); + } + + // send back the headers: + HttpHeaderOperation.sendHeaders(headers, httpResponse); + // Tomcat will always send a charset... It's trying to be smarter than // we are. If the original page didn't include a "charset" as part of // the "Content-Type" HTTP header, then Tomcat will use the default.. // who knows what that is, or what that will do to the page.. // let's try explicitly setting it to what we used: - headers.put("X-Wayback-Guessed-Charset", page.getCharSet()); - - // send back the headers: - HttpHeaderOperation.sendHeaders(headers, httpResponse); httpResponse.setCharacterEncoding(page.getCharSet()); page.writeToOutputStream(httpResponse.getOutputStream()); @@ -131,4 +138,21 @@ public void setCharsetDetector(CharsetDetector charsetDetector) { this.charsetDetector = charsetDetector; } + + /** + * @return the String HTTP Header used to indicate what Wayback determined + * was the pages original charset + */ + public String getGuessedCharsetHeader() { + return guessedCharsetHeader; + } + + /** + * @param guessedCharsetHeader the String HTTP Header value used to indicate + * to clients what Wayback determined was the pages original charset. If set + * to null, the header will be omitted. + */ + public void setGuessedCharsetHeader(String guessedCharsetHeader) { + this.guessedCharsetHeader = guessedCharsetHeader; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bra...@us...> - 2010-05-18 22:39:06
|
Revision: 3102 http://archive-access.svn.sourceforge.net/archive-access/?rev=3102&view=rev Author: bradtofel Date: 2010-05-18 22:38:59 +0000 (Tue, 18 May 2010) Log Message: ----------- INTERFACE: made guessed charset HTTP header name public Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/TextReplayRenderer.java Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/TextReplayRenderer.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/TextReplayRenderer.java 2010-05-17 19:52:24 UTC (rev 3101) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/TextReplayRenderer.java 2010-05-18 22:38:59 UTC (rev 3102) @@ -50,7 +50,7 @@ */ public abstract class TextReplayRenderer implements ReplayRenderer { - private static String GUESSED_CHARSET_HEADER = "X-Archive-Guessed-Charset"; + public static String GUESSED_CHARSET_HEADER = "X-Archive-Guessed-Charset"; private String guessedCharsetHeader = GUESSED_CHARSET_HEADER; private List<String> jspInserts = null; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |