mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-17 13:59:50 +00:00
specify encodings as Charset rather than String
This commit is contained in:
parent
665ee2730d
commit
e781abb3c7
23 changed files with 71 additions and 81 deletions
|
@ -181,7 +181,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
||||||
|
|
||||||
// System.out.println(uri.toString());
|
// System.out.println(uri.toString());
|
||||||
|
|
||||||
final CharSequence page = ParserUtils.scrape(uri.toString(), false, null, "UTF-8", null);
|
final CharSequence page = ParserUtils.scrape(uri.toString(), false, null, UTF_8, null);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -2297,7 +2297,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
uri.append("&type_").append(paramSuffix).append("=").append(locationTypeValue(location));
|
uri.append("&type_").append(paramSuffix).append("=").append(locationTypeValue(location));
|
||||||
uri.append("&name_").append(paramSuffix).append("=").append(ParserUtils.urlEncode(locationValue(location), "ISO-8859-1"));
|
uri.append("&name_").append(paramSuffix).append("=").append(ParserUtils.urlEncode(locationValue(location), ISO_8859_1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,8 +18,9 @@
|
||||||
package de.schildbach.pte;
|
package de.schildbach.pte;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
|
import java.io.Reader;
|
||||||
|
import java.nio.charset.Charset;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
@ -68,14 +69,13 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
||||||
{
|
{
|
||||||
protected final static String SERVER_PRODUCT = "hafas";
|
protected final static String SERVER_PRODUCT = "hafas";
|
||||||
|
|
||||||
private static final String DEFAULT_ENCODING = "ISO-8859-1";
|
|
||||||
private static final String PROD = "hafas";
|
private static final String PROD = "hafas";
|
||||||
|
|
||||||
private final String apiUri;
|
private final String apiUri;
|
||||||
private final int numProductBits;
|
private final int numProductBits;
|
||||||
private final String accessId;
|
private final String accessId;
|
||||||
private final String jsonEncoding;
|
private final Charset jsonEncoding;
|
||||||
private final String xmlMlcResEncoding;
|
private final Charset xmlMlcResEncoding;
|
||||||
|
|
||||||
private static class Context implements QueryConnectionsContext
|
private static class Context implements QueryConnectionsContext
|
||||||
{
|
{
|
||||||
|
@ -101,8 +101,8 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public AbstractHafasProvider(final String apiUri, final int numProductBits, final String accessId, final String jsonEncoding,
|
public AbstractHafasProvider(final String apiUri, final int numProductBits, final String accessId, final Charset jsonEncoding,
|
||||||
final String xmlMlcResEncoding)
|
final Charset xmlMlcResEncoding)
|
||||||
{
|
{
|
||||||
this.apiUri = apiUri;
|
this.apiUri = apiUri;
|
||||||
this.numProductBits = numProductBits;
|
this.numProductBits = numProductBits;
|
||||||
|
@ -116,8 +116,8 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
||||||
this.apiUri = apiUri;
|
this.apiUri = apiUri;
|
||||||
this.numProductBits = numProductBits;
|
this.numProductBits = numProductBits;
|
||||||
this.accessId = accessId;
|
this.accessId = accessId;
|
||||||
this.jsonEncoding = DEFAULT_ENCODING;
|
this.jsonEncoding = ISO_8859_1;
|
||||||
this.xmlMlcResEncoding = DEFAULT_ENCODING;
|
this.xmlMlcResEncoding = ISO_8859_1;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected TimeZone timeZone()
|
protected TimeZone timeZone()
|
||||||
|
@ -243,16 +243,17 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
||||||
|
|
||||||
// System.out.println(ParserUtils.scrape(apiUri, true, wrap(request), null, false));
|
// System.out.println(ParserUtils.scrape(apiUri, true, wrap(request), null, false));
|
||||||
|
|
||||||
InputStream is = null;
|
Reader reader = null;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
is = ParserUtils.scrapeInputStream(apiUri, wrap(request), null, 3);
|
reader = new InputStreamReader(ParserUtils.scrapeInputStream(apiUri, wrap(request), null, 3), ISO_8859_1);
|
||||||
|
|
||||||
final List<Location> results = new ArrayList<Location>();
|
final List<Location> results = new ArrayList<Location>();
|
||||||
|
|
||||||
final XmlPullParserFactory factory = XmlPullParserFactory.newInstance(System.getProperty(XmlPullParserFactory.PROPERTY_NAME), null);
|
final XmlPullParserFactory factory = XmlPullParserFactory.newInstance(System.getProperty(XmlPullParserFactory.PROPERTY_NAME), null);
|
||||||
final XmlPullParser pp = factory.newPullParser();
|
final XmlPullParser pp = factory.newPullParser();
|
||||||
pp.setInput(is, DEFAULT_ENCODING);
|
pp.setInput(reader);
|
||||||
|
|
||||||
assertResC(pp);
|
assertResC(pp);
|
||||||
XmlPullUtil.enter(pp);
|
XmlPullUtil.enter(pp);
|
||||||
|
@ -288,8 +289,8 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
if (is != null)
|
if (reader != null)
|
||||||
is.close();
|
reader.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -374,15 +375,15 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
||||||
|
|
||||||
protected final List<Location> xmlLocationList(final String uri) throws IOException
|
protected final List<Location> xmlLocationList(final String uri) throws IOException
|
||||||
{
|
{
|
||||||
InputStream is = null;
|
Reader reader = null;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
is = ParserUtils.scrapeInputStream(uri);
|
reader = new InputStreamReader(ParserUtils.scrapeInputStream(uri), UTF_8);
|
||||||
|
|
||||||
final XmlPullParserFactory factory = XmlPullParserFactory.newInstance(System.getProperty(XmlPullParserFactory.PROPERTY_NAME), null);
|
final XmlPullParserFactory factory = XmlPullParserFactory.newInstance(System.getProperty(XmlPullParserFactory.PROPERTY_NAME), null);
|
||||||
final XmlPullParser pp = factory.newPullParser();
|
final XmlPullParser pp = factory.newPullParser();
|
||||||
pp.setInput(is, "UTF-8");
|
pp.setInput(reader);
|
||||||
|
|
||||||
final List<Location> results = new ArrayList<Location>();
|
final List<Location> results = new ArrayList<Location>();
|
||||||
|
|
||||||
|
@ -440,8 +441,8 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
if (is != null)
|
if (reader != null)
|
||||||
is.close();
|
reader.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -454,15 +455,15 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
||||||
|
|
||||||
// ParserUtils.printXml(ParserUtils.scrape(apiUri, true, wrap(request), mlcResEncoding, false));
|
// ParserUtils.printXml(ParserUtils.scrape(apiUri, true, wrap(request), mlcResEncoding, false));
|
||||||
|
|
||||||
InputStream is = null;
|
Reader reader = null;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
is = ParserUtils.scrapeInputStream(apiUri, wrap(request), null, 3);
|
reader = new InputStreamReader(ParserUtils.scrapeInputStream(apiUri, wrap(request), null, 3), xmlMlcResEncoding);
|
||||||
|
|
||||||
final XmlPullParserFactory factory = XmlPullParserFactory.newInstance(System.getProperty(XmlPullParserFactory.PROPERTY_NAME), null);
|
final XmlPullParserFactory factory = XmlPullParserFactory.newInstance(System.getProperty(XmlPullParserFactory.PROPERTY_NAME), null);
|
||||||
final XmlPullParser pp = factory.newPullParser();
|
final XmlPullParser pp = factory.newPullParser();
|
||||||
pp.setInput(is, xmlMlcResEncoding);
|
pp.setInput(reader);
|
||||||
|
|
||||||
final List<Location> results = new ArrayList<Location>();
|
final List<Location> results = new ArrayList<Location>();
|
||||||
|
|
||||||
|
@ -523,8 +524,8 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
if (is != null)
|
if (reader != null)
|
||||||
is.close();
|
reader.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -536,8 +537,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
reader = new StringReplaceReader(new InputStreamReader(ParserUtils.scrapeInputStream(uri), DEFAULT_ENCODING), "Ringbahn ->",
|
reader = new StringReplaceReader(new InputStreamReader(ParserUtils.scrapeInputStream(uri), ISO_8859_1), "Ringbahn ->", "Ringbahn ->");
|
||||||
"Ringbahn ->");
|
|
||||||
reader.replace("Ringbahn <-", "Ringbahn <-");
|
reader.replace("Ringbahn <-", "Ringbahn <-");
|
||||||
|
|
||||||
// System.out.println(uri);
|
// System.out.println(uri);
|
||||||
|
@ -823,15 +823,15 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
||||||
// System.out.println(request);
|
// System.out.println(request);
|
||||||
// ParserUtils.printXml(ParserUtils.scrape(apiUri, true, wrap(request), null, null));
|
// ParserUtils.printXml(ParserUtils.scrape(apiUri, true, wrap(request), null, null));
|
||||||
|
|
||||||
InputStream is = null;
|
Reader reader = null;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
is = ParserUtils.scrapeInputStream(apiUri, wrap(request), null, 3);
|
reader = new InputStreamReader(ParserUtils.scrapeInputStream(apiUri, wrap(request), null, 3), ISO_8859_1);
|
||||||
|
|
||||||
final XmlPullParserFactory factory = XmlPullParserFactory.newInstance(System.getProperty(XmlPullParserFactory.PROPERTY_NAME), null);
|
final XmlPullParserFactory factory = XmlPullParserFactory.newInstance(System.getProperty(XmlPullParserFactory.PROPERTY_NAME), null);
|
||||||
final XmlPullParser pp = factory.newPullParser();
|
final XmlPullParser pp = factory.newPullParser();
|
||||||
pp.setInput(is, DEFAULT_ENCODING);
|
pp.setInput(reader);
|
||||||
|
|
||||||
assertResC(pp);
|
assertResC(pp);
|
||||||
final String product = XmlPullUtil.attr(pp, "prod").split(" ")[0];
|
final String product = XmlPullUtil.attr(pp, "prod").split(" ")[0];
|
||||||
|
@ -1165,8 +1165,8 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
if (is != null)
|
if (reader != null)
|
||||||
is.close();
|
reader.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,8 @@
|
||||||
|
|
||||||
package de.schildbach.pte;
|
package de.schildbach.pte;
|
||||||
|
|
||||||
|
import java.nio.charset.Charset;
|
||||||
|
|
||||||
import de.schildbach.pte.dto.Point;
|
import de.schildbach.pte.dto.Point;
|
||||||
import de.schildbach.pte.dto.Style;
|
import de.schildbach.pte.dto.Style;
|
||||||
|
|
||||||
|
@ -25,6 +27,9 @@ import de.schildbach.pte.dto.Style;
|
||||||
*/
|
*/
|
||||||
public abstract class AbstractNetworkProvider implements NetworkProvider
|
public abstract class AbstractNetworkProvider implements NetworkProvider
|
||||||
{
|
{
|
||||||
|
protected static final Charset UTF_8 = Charset.forName("UTF-8");
|
||||||
|
protected static final Charset ISO_8859_1 = Charset.forName("ISO-8859-1");
|
||||||
|
|
||||||
public Style lineStyle(final String line)
|
public Style lineStyle(final String line)
|
||||||
{
|
{
|
||||||
if (line.length() == 0)
|
if (line.length() == 0)
|
||||||
|
|
|
@ -149,11 +149,10 @@ public final class BahnProvider extends AbstractHafasProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final String AUTOCOMPLETE_URI = API_BASE + "ajax-getstop.exe/dn?getstop=1&REQ0JourneyStopsS0A=255&S=%s?&js=true&";
|
private static final String AUTOCOMPLETE_URI = API_BASE + "ajax-getstop.exe/dn?getstop=1&REQ0JourneyStopsS0A=255&S=%s?&js=true&";
|
||||||
private static final String ENCODING = "ISO-8859-1";
|
|
||||||
|
|
||||||
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
||||||
{
|
{
|
||||||
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ENCODING));
|
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ISO_8859_1));
|
||||||
|
|
||||||
return jsonGetStops(uri);
|
return jsonGetStops(uri);
|
||||||
}
|
}
|
||||||
|
|
|
@ -169,7 +169,7 @@ public final class BvgProvider extends AbstractHafasProvider
|
||||||
final int parsedId = Integer.parseInt(mOwn.group(1));
|
final int parsedId = Integer.parseInt(mOwn.group(1));
|
||||||
final int parsedLon = (int) (Float.parseFloat(mOwn.group(2)) * 1E6);
|
final int parsedLon = (int) (Float.parseFloat(mOwn.group(2)) * 1E6);
|
||||||
final int parsedLat = (int) (Float.parseFloat(mOwn.group(3)) * 1E6);
|
final int parsedLat = (int) (Float.parseFloat(mOwn.group(3)) * 1E6);
|
||||||
final String[] parsedPlaceAndName = splitPlaceAndName(ParserUtils.urlDecode(mOwn.group(4), "ISO-8859-1"));
|
final String[] parsedPlaceAndName = splitPlaceAndName(ParserUtils.urlDecode(mOwn.group(4), ISO_8859_1));
|
||||||
stations.add(new Location(LocationType.STATION, parsedId, parsedLat, parsedLon, parsedPlaceAndName[0], parsedPlaceAndName[1]));
|
stations.add(new Location(LocationType.STATION, parsedId, parsedLat, parsedLon, parsedPlaceAndName[0], parsedPlaceAndName[1]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -454,8 +454,6 @@ public final class BvgProvider extends AbstractHafasProvider
|
||||||
return xmlMLcReq(constraint);
|
return xmlMLcReq(constraint);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final String URL_ENCODING = "ISO-8859-1";
|
|
||||||
|
|
||||||
private String connectionsQueryUri(final Location from, final Location via, final Location to, final Date date, final boolean dep,
|
private String connectionsQueryUri(final Location from, final Location via, final Location to, final Date date, final boolean dep,
|
||||||
final String products)
|
final String products)
|
||||||
{
|
{
|
||||||
|
@ -468,8 +466,8 @@ public final class BvgProvider extends AbstractHafasProvider
|
||||||
|
|
||||||
uri.append("?start=Suchen");
|
uri.append("?start=Suchen");
|
||||||
|
|
||||||
uri.append("&REQ0JourneyStopsS0ID=").append(ParserUtils.urlEncode(locationId(from), URL_ENCODING));
|
uri.append("&REQ0JourneyStopsS0ID=").append(ParserUtils.urlEncode(locationId(from), ISO_8859_1));
|
||||||
uri.append("&REQ0JourneyStopsZ0ID=").append(ParserUtils.urlEncode(locationId(to), URL_ENCODING));
|
uri.append("&REQ0JourneyStopsZ0ID=").append(ParserUtils.urlEncode(locationId(to), ISO_8859_1));
|
||||||
|
|
||||||
if (via != null)
|
if (via != null)
|
||||||
{
|
{
|
||||||
|
@ -487,11 +485,11 @@ public final class BvgProvider extends AbstractHafasProvider
|
||||||
uri.append("&REQ0JourneyStops1.0Y=").append(via.lat);
|
uri.append("&REQ0JourneyStops1.0Y=").append(via.lat);
|
||||||
if (via.name == null)
|
if (via.name == null)
|
||||||
uri.append("&REQ0JourneyStops1.0O=").append(
|
uri.append("&REQ0JourneyStops1.0O=").append(
|
||||||
ParserUtils.urlEncode(String.format(Locale.ENGLISH, "%.6f, %.6f", via.lat / 1E6, via.lon / 1E6), URL_ENCODING));
|
ParserUtils.urlEncode(String.format(Locale.ENGLISH, "%.6f, %.6f", via.lat / 1E6, via.lon / 1E6), ISO_8859_1));
|
||||||
}
|
}
|
||||||
else if (via.name != null)
|
else if (via.name != null)
|
||||||
{
|
{
|
||||||
uri.append("&REQ0JourneyStops1.0G=").append(ParserUtils.urlEncode(via.name, URL_ENCODING));
|
uri.append("&REQ0JourneyStops1.0G=").append(ParserUtils.urlEncode(via.name, ISO_8859_1));
|
||||||
if (via.type != LocationType.ANY)
|
if (via.type != LocationType.ANY)
|
||||||
uri.append('!');
|
uri.append('!');
|
||||||
}
|
}
|
||||||
|
|
|
@ -154,11 +154,10 @@ public class DsbProvider extends AbstractHafasProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final String AUTOCOMPLETE_URI = "http://xmlopen.rejseplanen.dk/bin/rest.exe/location.name?input=%s";
|
private static final String AUTOCOMPLETE_URI = "http://xmlopen.rejseplanen.dk/bin/rest.exe/location.name?input=%s";
|
||||||
private static final String ENCODING = "ISO-8859-1";
|
|
||||||
|
|
||||||
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
||||||
{
|
{
|
||||||
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ENCODING));
|
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ISO_8859_1));
|
||||||
|
|
||||||
return xmlLocationList(uri);
|
return xmlLocationList(uri);
|
||||||
}
|
}
|
||||||
|
|
|
@ -156,11 +156,10 @@ public class NriProvider extends AbstractHafasProvider
|
||||||
|
|
||||||
private static final String AUTOCOMPLETE_URI = API_BASE
|
private static final String AUTOCOMPLETE_URI = API_BASE
|
||||||
+ "ajax-getstop.exe/ony?start=1&tpl=suggest2json&REQ0JourneyStopsS0A=255&REQ0JourneyStopsS0B=5&REQ0JourneyStopsB=12&getstop=1&noSession=yes&REQ0JourneyStopsS0G=%s?&js=true&";
|
+ "ajax-getstop.exe/ony?start=1&tpl=suggest2json&REQ0JourneyStopsS0A=255&REQ0JourneyStopsS0B=5&REQ0JourneyStopsB=12&getstop=1&noSession=yes&REQ0JourneyStopsS0G=%s?&js=true&";
|
||||||
private static final String ENCODING = "ISO-8859-1";
|
|
||||||
|
|
||||||
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
||||||
{
|
{
|
||||||
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ENCODING));
|
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ISO_8859_1));
|
||||||
|
|
||||||
return jsonGetStops(uri);
|
return jsonGetStops(uri);
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@ public class NvvProvider extends AbstractHafasProvider
|
||||||
|
|
||||||
public NvvProvider()
|
public NvvProvider()
|
||||||
{
|
{
|
||||||
super(API_BASE + "query.exe/dn", 17, null, "UTF-8", "UTF-8");
|
super(API_BASE + "query.exe/dn", 17, null, UTF_8, UTF_8);
|
||||||
}
|
}
|
||||||
|
|
||||||
public NetworkId id()
|
public NetworkId id()
|
||||||
|
|
|
@ -35,7 +35,6 @@ public class OebbProvider extends AbstractHafasProvider
|
||||||
{
|
{
|
||||||
public static final NetworkId NETWORK_ID = NetworkId.OEBB;
|
public static final NetworkId NETWORK_ID = NetworkId.OEBB;
|
||||||
private static final String API_BASE = "http://fahrplan.oebb.at/bin/";
|
private static final String API_BASE = "http://fahrplan.oebb.at/bin/";
|
||||||
private static final String URL_ENCODING = "ISO-8859-1";
|
|
||||||
|
|
||||||
public OebbProvider()
|
public OebbProvider()
|
||||||
{
|
{
|
||||||
|
@ -186,7 +185,7 @@ public class OebbProvider extends AbstractHafasProvider
|
||||||
|
|
||||||
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
||||||
{
|
{
|
||||||
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), URL_ENCODING));
|
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ISO_8859_1));
|
||||||
|
|
||||||
return jsonGetStops(uri);
|
return jsonGetStops(uri);
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@ public class PlProvider extends AbstractHafasProvider
|
||||||
|
|
||||||
public PlProvider()
|
public PlProvider()
|
||||||
{
|
{
|
||||||
super(API_BASE + "query.exe/pn", 7, null, null, "UTF-8");
|
super(API_BASE + "query.exe/pn", 7, null, null, UTF_8);
|
||||||
}
|
}
|
||||||
|
|
||||||
public NetworkId id()
|
public NetworkId id()
|
||||||
|
|
|
@ -48,7 +48,7 @@ public class RmvProvider extends AbstractHafasProvider
|
||||||
|
|
||||||
public RmvProvider()
|
public RmvProvider()
|
||||||
{
|
{
|
||||||
super(API_BASE + "query.exe/dn", 16, null, "UTF-8", null);
|
super(API_BASE + "query.exe/dn", 16, null, UTF_8, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public NetworkId id()
|
public NetworkId id()
|
||||||
|
@ -298,11 +298,10 @@ public class RmvProvider extends AbstractHafasProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final String AUTOCOMPLETE_URI = API_BASE + "ajax-getstop.exe/dn?getstop=1&REQ0JourneyStopsS0A=255&S=%s?&js=true&";
|
private static final String AUTOCOMPLETE_URI = API_BASE + "ajax-getstop.exe/dn?getstop=1&REQ0JourneyStopsS0A=255&S=%s?&js=true&";
|
||||||
private static final String ENCODING = "ISO-8859-1";
|
|
||||||
|
|
||||||
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
||||||
{
|
{
|
||||||
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ENCODING));
|
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ISO_8859_1));
|
||||||
|
|
||||||
return jsonGetStops(uri);
|
return jsonGetStops(uri);
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,7 @@ public class RtProvider extends AbstractHafasProvider
|
||||||
|
|
||||||
public RtProvider()
|
public RtProvider()
|
||||||
{
|
{
|
||||||
super(API_BASE + "query.exe/dn", 10, null, "UTF-8", null);
|
super(API_BASE + "query.exe/dn", 10, null, UTF_8, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public NetworkId id()
|
public NetworkId id()
|
||||||
|
@ -148,11 +148,10 @@ public class RtProvider extends AbstractHafasProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final String AUTOCOMPLETE_URI = API_BASE + "ajax-getstop.exe/dn?getstop=1&REQ0JourneyStopsS0A=255&S=%s?&js=true&";
|
private static final String AUTOCOMPLETE_URI = API_BASE + "ajax-getstop.exe/dn?getstop=1&REQ0JourneyStopsS0A=255&S=%s?&js=true&";
|
||||||
private static final String ENCODING = "ISO-8859-1";
|
|
||||||
|
|
||||||
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
||||||
{
|
{
|
||||||
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ENCODING));
|
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ISO_8859_1));
|
||||||
|
|
||||||
return jsonGetStops(uri);
|
return jsonGetStops(uri);
|
||||||
}
|
}
|
||||||
|
|
|
@ -143,11 +143,10 @@ public class SbbProvider extends AbstractHafasProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final String AUTOCOMPLETE_URI = API_BASE + "ajax-getstop.exe/dn?getstop=1&REQ0JourneyStopsS0A=255&S=%s?&js=true&";
|
private static final String AUTOCOMPLETE_URI = API_BASE + "ajax-getstop.exe/dn?getstop=1&REQ0JourneyStopsS0A=255&S=%s?&js=true&";
|
||||||
private static final String ENCODING = "ISO-8859-1";
|
|
||||||
|
|
||||||
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
||||||
{
|
{
|
||||||
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ENCODING));
|
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ISO_8859_1));
|
||||||
|
|
||||||
return jsonGetStops(uri);
|
return jsonGetStops(uri);
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@ public class SeProvider extends AbstractHafasProvider
|
||||||
|
|
||||||
public SeProvider()
|
public SeProvider()
|
||||||
{
|
{
|
||||||
super(API_BASE + "query.exe/sn", 14, null, "UTF-8", null);
|
super(API_BASE + "query.exe/sn", 14, null, UTF_8, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public NetworkId id()
|
public NetworkId id()
|
||||||
|
@ -191,11 +191,10 @@ public class SeProvider extends AbstractHafasProvider
|
||||||
|
|
||||||
private static final String AUTOCOMPLETE_URI = API_BASE
|
private static final String AUTOCOMPLETE_URI = API_BASE
|
||||||
+ "ajax-getstop.exe/sny?start=1&tpl=suggest2json&REQ0JourneyStopsS0A=7&getstop=1&noSession=yes&REQ0JourneyStopsB=12&REQ0JourneyStopsS0G=&S=%s";
|
+ "ajax-getstop.exe/sny?start=1&tpl=suggest2json&REQ0JourneyStopsS0A=7&getstop=1&noSession=yes&REQ0JourneyStopsB=12&REQ0JourneyStopsS0G=&S=%s";
|
||||||
private static final String ENCODING = "ISO-8859-1";
|
|
||||||
|
|
||||||
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
||||||
{
|
{
|
||||||
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ENCODING));
|
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ISO_8859_1));
|
||||||
|
|
||||||
return jsonGetStops(uri);
|
return jsonGetStops(uri);
|
||||||
}
|
}
|
||||||
|
|
|
@ -289,11 +289,10 @@ public class SeptaProvider extends AbstractHafasProvider
|
||||||
|
|
||||||
private static final String AUTOCOMPLETE_URI = API_BASE
|
private static final String AUTOCOMPLETE_URI = API_BASE
|
||||||
+ "ajax-getstop.exe/dny?start=1&tpl=suggest2json&REQ0JourneyStopsS0A=255&REQ0JourneyStopsB=12&S=%s?&js=true&";
|
+ "ajax-getstop.exe/dny?start=1&tpl=suggest2json&REQ0JourneyStopsS0A=255&REQ0JourneyStopsB=12&S=%s?&js=true&";
|
||||||
private static final String ENCODING = "ISO-8859-1";
|
|
||||||
|
|
||||||
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
||||||
{
|
{
|
||||||
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ENCODING));
|
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ISO_8859_1));
|
||||||
|
|
||||||
return jsonGetStops(uri);
|
return jsonGetStops(uri);
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,7 +50,7 @@ public class ShProvider extends AbstractHafasProvider
|
||||||
|
|
||||||
public ShProvider()
|
public ShProvider()
|
||||||
{
|
{
|
||||||
super(API_BASE + "query.exe/dn", 10, null, null, "UTF-8");
|
super(API_BASE + "query.exe/dn", 10, null, null, UTF_8);
|
||||||
}
|
}
|
||||||
|
|
||||||
public NetworkId id()
|
public NetworkId id()
|
||||||
|
|
|
@ -134,11 +134,10 @@ public class SncbProvider extends AbstractHafasProvider
|
||||||
|
|
||||||
private static final String AUTOCOMPLETE_URI = API_BASE
|
private static final String AUTOCOMPLETE_URI = API_BASE
|
||||||
+ "ajax-getstop.exe/nny?start=1&tpl=suggest2json&REQ0JourneyStopsS0A=255&REQ0JourneyStopsB=12&S=%s?&js=true&";
|
+ "ajax-getstop.exe/nny?start=1&tpl=suggest2json&REQ0JourneyStopsS0A=255&REQ0JourneyStopsB=12&S=%s?&js=true&";
|
||||||
private static final String ENCODING = "ISO-8859-1";
|
|
||||||
|
|
||||||
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
||||||
{
|
{
|
||||||
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ENCODING));
|
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ISO_8859_1));
|
||||||
|
|
||||||
return jsonGetStops(uri);
|
return jsonGetStops(uri);
|
||||||
}
|
}
|
||||||
|
|
|
@ -158,11 +158,10 @@ public class StockholmProvider extends AbstractHafasProvider
|
||||||
|
|
||||||
private static final String AUTOCOMPLETE_URI = API_BASE
|
private static final String AUTOCOMPLETE_URI = API_BASE
|
||||||
+ "ajax-getstop.exe/sny?start=1&tpl=suggest2json&REQ0JourneyStopsS0A=7&getstop=1&noSession=yes&REQ0JourneyStopsB=12&REQ0JourneyStopsS0G=&S=%s";
|
+ "ajax-getstop.exe/sny?start=1&tpl=suggest2json&REQ0JourneyStopsS0A=7&getstop=1&noSession=yes&REQ0JourneyStopsB=12&REQ0JourneyStopsS0G=&S=%s";
|
||||||
private static final String ENCODING = "ISO-8859-1";
|
|
||||||
|
|
||||||
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
||||||
{
|
{
|
||||||
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ENCODING));
|
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ISO_8859_1));
|
||||||
|
|
||||||
return jsonGetStops(uri);
|
return jsonGetStops(uri);
|
||||||
}
|
}
|
||||||
|
|
|
@ -164,11 +164,10 @@ public class VbbProvider extends AbstractHafasProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final String AUTOCOMPLETE_URI = API_BASE + "ajax-getstop.exe/dn?getstop=1&REQ0JourneyStopsS0A=255&S=%s?&js=true&";
|
private static final String AUTOCOMPLETE_URI = API_BASE + "ajax-getstop.exe/dn?getstop=1&REQ0JourneyStopsS0A=255&S=%s?&js=true&";
|
||||||
private static final String ENCODING = "ISO-8859-1";
|
|
||||||
|
|
||||||
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
||||||
{
|
{
|
||||||
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ENCODING));
|
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ISO_8859_1));
|
||||||
|
|
||||||
return jsonGetStops(uri);
|
return jsonGetStops(uri);
|
||||||
}
|
}
|
||||||
|
|
|
@ -149,11 +149,10 @@ public class VbnProvider extends AbstractHafasProvider
|
||||||
|
|
||||||
private static final String AUTOCOMPLETE_URI = API_BASE
|
private static final String AUTOCOMPLETE_URI = API_BASE
|
||||||
+ "ajax-getstop.exe/dny?start=1&tpl=suggest2json&REQ0JourneyStopsS0A=255&REQ0JourneyStopsS0B=5&REQ0JourneyStopsB=12&getstop=1&noSession=yes&REQ0JourneyStopsS0G=%s?&js=true&";
|
+ "ajax-getstop.exe/dny?start=1&tpl=suggest2json&REQ0JourneyStopsS0A=255&REQ0JourneyStopsS0B=5&REQ0JourneyStopsB=12&getstop=1&noSession=yes&REQ0JourneyStopsS0G=%s?&js=true&";
|
||||||
private static final String ENCODING = "ISO-8859-1";
|
|
||||||
|
|
||||||
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
||||||
{
|
{
|
||||||
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ENCODING));
|
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ISO_8859_1));
|
||||||
|
|
||||||
return jsonGetStops(uri);
|
return jsonGetStops(uri);
|
||||||
}
|
}
|
||||||
|
|
|
@ -300,11 +300,10 @@ public class VgsProvider extends AbstractHafasProvider
|
||||||
|
|
||||||
private static final String AUTOCOMPLETE_URI = API_BASE
|
private static final String AUTOCOMPLETE_URI = API_BASE
|
||||||
+ "ajax-getstop.exe/eny?start=1&tpl=suggest2json&REQ0JourneyStopsS0A=1&getstop=1&noSession=yes&REQ0JourneyStopsB=12&REQ0JourneyStopsS0G=%s?&js=true&";
|
+ "ajax-getstop.exe/eny?start=1&tpl=suggest2json&REQ0JourneyStopsS0A=1&getstop=1&noSession=yes&REQ0JourneyStopsB=12&REQ0JourneyStopsS0G=%s?&js=true&";
|
||||||
private static final String ENCODING = "ISO-8859-1";
|
|
||||||
|
|
||||||
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
public List<Location> autocompleteStations(final CharSequence constraint) throws IOException
|
||||||
{
|
{
|
||||||
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ENCODING));
|
final String uri = String.format(AUTOCOMPLETE_URI, ParserUtils.urlEncode(constraint.toString(), ISO_8859_1));
|
||||||
|
|
||||||
return jsonGetStops(uri);
|
return jsonGetStops(uri);
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,7 @@ public class ZvvProvider extends AbstractHafasProvider
|
||||||
|
|
||||||
public ZvvProvider()
|
public ZvvProvider()
|
||||||
{
|
{
|
||||||
super(API_BASE + "query.exe/dn", 10, null, "UTF-8", "UTF-8");
|
super(API_BASE + "query.exe/dn", 10, null, UTF_8, UTF_8);
|
||||||
}
|
}
|
||||||
|
|
||||||
public NetworkId id()
|
public NetworkId id()
|
||||||
|
|
|
@ -29,6 +29,7 @@ import java.net.SocketTimeoutException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.net.URLDecoder;
|
import java.net.URLDecoder;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
|
import java.nio.charset.Charset;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.GregorianCalendar;
|
import java.util.GregorianCalendar;
|
||||||
|
@ -50,7 +51,7 @@ public final class ParserUtils
|
||||||
private static final int SCRAPE_INITIAL_CAPACITY = 4096;
|
private static final int SCRAPE_INITIAL_CAPACITY = 4096;
|
||||||
private static final int SCRAPE_CONNECT_TIMEOUT = 5000;
|
private static final int SCRAPE_CONNECT_TIMEOUT = 5000;
|
||||||
private static final int SCRAPE_READ_TIMEOUT = 15000;
|
private static final int SCRAPE_READ_TIMEOUT = 15000;
|
||||||
private static final String SCRAPE_DEFAULT_ENCODING = "ISO-8859-1";
|
private static final Charset SCRAPE_DEFAULT_ENCODING = Charset.forName("ISO-8859-1");
|
||||||
private static final int SCRAPE_PAGE_EMPTY_THRESHOLD = 2;
|
private static final int SCRAPE_PAGE_EMPTY_THRESHOLD = 2;
|
||||||
|
|
||||||
private static String stateCookie;
|
private static String stateCookie;
|
||||||
|
@ -65,13 +66,13 @@ public final class ParserUtils
|
||||||
return scrape(url, false, null, null, null);
|
return scrape(url, false, null, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final CharSequence scrape(final String url, final boolean isPost, final String request, String encoding,
|
public static final CharSequence scrape(final String url, final boolean isPost, final String request, Charset encoding,
|
||||||
final String sessionCookieName) throws IOException
|
final String sessionCookieName) throws IOException
|
||||||
{
|
{
|
||||||
return scrape(url, isPost, request, encoding, sessionCookieName, 3);
|
return scrape(url, isPost, request, encoding, sessionCookieName, 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final CharSequence scrape(final String urlStr, final boolean isPost, final String request, String encoding,
|
public static final CharSequence scrape(final String urlStr, final boolean isPost, final String request, Charset encoding,
|
||||||
final String sessionCookieName, int tries) throws IOException
|
final String sessionCookieName, int tries) throws IOException
|
||||||
{
|
{
|
||||||
if (encoding == null)
|
if (encoding == null)
|
||||||
|
@ -432,11 +433,11 @@ public final class ParserUtils
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String urlEncode(final String str, final String enc)
|
public static String urlEncode(final String str, final Charset encoding)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
return URLEncoder.encode(str, enc);
|
return URLEncoder.encode(str, encoding.name());
|
||||||
}
|
}
|
||||||
catch (final UnsupportedEncodingException x)
|
catch (final UnsupportedEncodingException x)
|
||||||
{
|
{
|
||||||
|
@ -444,11 +445,11 @@ public final class ParserUtils
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String urlDecode(final String str, final String enc)
|
public static String urlDecode(final String str, final Charset encoding)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
return URLDecoder.decode(str, enc);
|
return URLDecoder.decode(str, encoding.name());
|
||||||
}
|
}
|
||||||
catch (final UnsupportedEncodingException x)
|
catch (final UnsupportedEncodingException x)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue