Philippe,
Good to hear from you and many thanks for the patch! We will put it
in.
Cheers.
V.
Philippe Le Hegaret wrote:
>
> I noticed that Batik doesn't send any Accept headers (or wrong ones) in the
> HTTP requests.
> I added them in the 1.0 version (see attachments).
>
> Note:
> - Didn't do anything about Accept-Language yet.
> - the charset parameter is valid for text/xml and application/xml.
> Don't know about image/svg+xml.
> - I also added the User-Agent header.
>
>
> Philippe
>
> ------------------------------------------------------------------------
> Index: sources/org/apache/batik/ext/awt/image/ImageLoader.java
> ===================================================================
> RCS file:
>/home/cvspublic/xml-batik/sources/org/apache/batik/ext/awt/image/ImageLoader.java,v
> retrieving revision 1.1
> diff -r1.1 ImageLoader.java
> 22c22,24
> < public class ImageLoader {
> ---
> > import org.apache.batik.util.HTTPConstants;
> >
> > public class ImageLoader implements HTTPConstants {
> 185c190,201
> < in = url.openStream();
> ---
> > URLConnection urlC = url.openConnection();
> >
> > if (urlC instanceof HttpURLConnection) {
> > urlC.setRequestProperty(HTTP_USER_AGENT_HEADER,
> > HTTP_BATIK_USER_AGENT);
> > urlC.setRequestProperty(HTTP_ACCEPT_HEADER,
> > HTTP_ACCEPT_JPEG);
> > }
> >
> > urlC.connect();
> >
> > in = urlC.getInputStream();
>
> ------------------------------------------------------------------------
> Index: sources/org/apache/batik/apps/svgbrowser/JSVGViewerFrame.java
> ===================================================================
> RCS file:
>/home/cvspublic/xml-batik/sources/org/apache/batik/apps/svgbrowser/JSVGViewerFrame.java,v
> retrieving revision 1.44
> diff -r1.44 JSVGViewerFrame.java
> 47a48,49
> > import java.net.URLConnection;
> > import java.net.HttpURLConnection;
> 108a111
> > import org.apache.batik.util.HTTPConstants;
> 140a144
> > HTTPConstants,
> 1037a1042,1051
> > URLConnection urlC = u.openConnection();
> >
> > if (urlC instanceof HttpURLConnection) {
> > urlC.setRequestProperty(HTTP_USER_AGENT_HEADER,
> > HTTP_BATIK_USER_AGENT);
> > urlC.setRequestProperty(HTTP_ACCEPT_HEADER,
> > HTTP_ACCEPT_SVG);
> > }
> >
> > urlC.connect();
> 1039c1053,1054
> < InputStream is = ParsedURL.checkGZIP(u.openStream());
> ---
> > InputStream is =
> > ParsedURL.checkGZIP(urlC.getInputStream());
>
> ------------------------------------------------------------------------
> Index: sources/org/apache/batik/util/ParsedURLData.java
> ===================================================================
> RCS file:
>/home/cvspublic/xml-batik/sources/org/apache/batik/util/ParsedURLData.java,v
> retrieving revision 1.1
> diff -r1.1 ParsedURLData.java
> 14a15,16
> > import java.net.URLConnection;
> > import java.net.HttpURLConnection;
> 19c21,23
> < public class ParsedURLData {
> ---
> > import org.apache.batik.util.HTTPConstants;
> >
> > public class ParsedURLData implements HTTPConstants {
> 232c236,251
> < return url.openStream();
> ---
> >
> > URLConnection urlC = url.openConnection();
> >
> > if (urlC instanceof HttpURLConnection) {
> > urlC.setRequestProperty(HTTP_USER_AGENT_HEADER,
> > HTTP_BATIK_USER_AGENT);
> > urlC.setRequestProperty(HTTP_ACCEPT_HEADER,
> > HTTP_ACCEPT_PNG + ","
> > + HTTP_ACCEPT_JPEG + ","
> > + HTTP_ACCEPT_GIF + ","
> > + HTTP_ACCEPT_TIFF);
> > }
> >
> > urlC.connect();
> >
> > return urlC.getInputStream();
>
> ------------------------------------------------------------------------
> Index: sources/org/apache/batik/css/parser/Parser.java
> ===================================================================
> RCS file: /home/cvspublic/xml-batik/sources/org/apache/batik/css/parser/Parser.java,v
> retrieving revision 1.10
> diff -r1.10 Parser.java
> 18a19,20
> > import java.net.URLConnection;
> > import java.net.HttpURLConnection;
> 28a31
> > import org.apache.batik.util.HTTPConstants;
> 51a55
> > HTTPConstants,
> 1536c1540,1553
> < return characterStream(source, url.openStream(), enc);
> ---
> > URLConnection urlC = url.openConnection();
> >
> > if (urlC instanceof HttpURLConnection) {
> > urlC.setRequestProperty(HTTP_USER_AGENT_HEADER,
> > HTTP_BATIK_USER_AGENT);
> > urlC.setRequestProperty(HTTP_ACCEPT_HEADER,
> > HTTP_ACCEPT_CSS);
> > }
> >
> > urlC.connect();
> >
> > // Don't disconnect the connection to allow persistent
> > // connection.
> > return characterStream(source, urlC.getInputStream(), enc);
>
> ------------------------------------------------------------------------
> Index: sources/org/apache/batik/dom/svg/SAXSVGDocumentFactory.java
> ===================================================================
> RCS file:
>/home/cvspublic/xml-batik/sources/org/apache/batik/dom/svg/SAXSVGDocumentFactory.java,v
> retrieving revision 1.8
> diff -r1.8 SAXSVGDocumentFactory.java
> 11a12
> > import java.io.BufferedInputStream;
> 16a18,19
> > import java.net.URLConnection;
> > import java.net.HttpURLConnection;
> 23a27,28
> > import org.apache.batik.util.HTTPConstants;
> >
> 41c46,47
> < implements SVGDocumentFactory {
> ---
> > implements SVGDocumentFactory,
> > HTTPConstants {
> 78a85,86
> > URLConnection urlC;
> >
> 85c93,109
> < InputStream is = url.openStream();
> ---
> > urlC = url.openConnection();
> >
> > if (urlC instanceof HttpURLConnection) {
> > // no constant for Batik version?!?
> > urlC.setRequestProperty(HTTP_USER_AGENT_HEADER,
> > HTTP_BATIK_USER_AGENT);
> > // this is a CSS parser, only accept the CSS mime type
> > urlC.setRequestProperty(HTTP_ACCEPT_HEADER,
> > HTTP_ACCEPT_SVG);
> > }
> >
> > urlC.connect();
> >
> > InputStream is = urlC.getInputStream();
> > if (!is.markSupported()) {
> > is = new BufferedInputStream(is, 4096);
> > }
> 86a111
> > is.mark(16);
> 89,90c114
> < is.close();
> < is = url.openStream();
> ---
> > is.reset();
> 94a119,144
> >
> > // now looking for a charset encoding in the content type
> > // such as "image/svg+xml; charset=iso8859-1"
> > // this is not official for image/svg+xml yet! only for text/xml and maybe
> > // for application/xml
> > String contentType = urlC.getContentType();
> > int cindex = (contentType == null)?
> > -1
> > : contentType.indexOf(HTTP_CHARSET);
> >
> > if (cindex != -1) {
> > StringBuffer bcharset = new StringBuffer(10);
> > int length = contentType.length();
> > int i = cindex + HTTP_CHARSET.length();
> > while ((i < length) && (contentType.charAt(i) != '=')) {
> > i ++;
> > }
> > if (++i < length) {
> > char c;
> > while ((i < length) && ((c = contentType.charAt(i)) != ',')) {
> > bcharset.append(c);
> > i ++;
> > }
> > isrc.setEncoding(bcharset.toString().trim());
> > }
> > }
>
> ------------------------------------------------------------------------
> /*****************************************************************************
> * Copyright (C) The Apache Software Foundation. All rights reserved. *
> * ------------------------------------------------------------------------- *
> * This software is published under the terms of the Apache Software License *
> * version 1.1, a copy of which has been included with this distribution in *
> * the LICENSE file. *
> *****************************************************************************/
>
> package org.apache.batik.util;
>
> /**
> * Contains useful HTTP Headers used for HTTP requests.
> */
> public interface HTTPConstants {
> String HTTP_ACCEPT_HEADER = "Accept";
> String HTTP_ACCEPT_LANGUAGE_HEADER = "Accept-Language";
> String HTTP_USER_AGENT_HEADER = "User-Agent";
>
> String HTTP_CHARSET = "charset";
>
> String HTTP_BATIK_USER_AGENT = "Batik/1.0";
> String HTTP_ACCEPT_JPEG = "image/jpeg";
> String HTTP_ACCEPT_GIF = "image/gif";
> String HTTP_ACCEPT_PNG = "image/png";
> String HTTP_ACCEPT_TIFF = "image/tiff";
> String HTTP_ACCEPT_CSS = "text/css";
> String HTTP_ACCEPT_SVG =
> "image/svg+xml,application/xml,text/xml";
>
> }
>
> ------------------------------------------------------------------------
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]