use correct referer for Wien

This commit is contained in:
Andreas Schildbach 2012-09-20 14:49:18 +02:00
parent 64559430ad
commit 8eb6c04b02
4 changed files with 21 additions and 8 deletions

View file

@ -86,6 +86,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
private final boolean canAcceptPoiID;
private final boolean needsSpEncId;
private Charset requestUrlEncoding = ISO_8859_1;
private String referer;
private boolean suppressPositions = false;
private boolean useRouteIndexAsConnectionId = true;
private final XmlPullParserFactory parserFactory;
@ -157,6 +158,11 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
this.requestUrlEncoding = requestUrlEncoding;
}
protected void setReferer(final String referer)
{
this.referer = referer;
}
protected void setSuppressPositions(final boolean suppressPositions)
{
this.suppressPositions = suppressPositions;
@ -1316,7 +1322,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
InputStream is = null;
try
{
is = ParserUtils.scrapeInputStream(uri.toString());
is = ParserUtils.scrapeInputStream(uri.toString(), null, null, referer, null, 3);
final XmlPullParser pp = parserFactory.newPullParser();
pp.setInput(is, null);
@ -1723,10 +1729,12 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
{
final String uri = xsltTripRequest2Uri(from, via, to, date, dep, numConnections, products, walkSpeed, accessibility, options);
System.out.println(uri);
InputStream is = null;
try
{
is = ParserUtils.scrapeInputStream(uri, null, null, "NSC_", 3);
is = ParserUtils.scrapeInputStream(uri, null, null, referer, "NSC_", 3);
return queryConnections(uri, is);
}
catch (final XmlPullParserException x)
@ -1757,7 +1765,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
InputStream is = null;
try
{
is = new BufferedInputStream(ParserUtils.scrapeInputStream(uri.toString(), null, null, "NSC_", 3));
is = new BufferedInputStream(ParserUtils.scrapeInputStream(uri.toString(), null, null, referer, "NSC_", 3));
is.mark(512);
return queryConnections(uri.toString(), is);

View file

@ -282,7 +282,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
try
{
reader = new InputStreamReader(ParserUtils.scrapeInputStream(apiUri, wrap(request, null), null, null, 3), ISO_8859_1);
reader = new InputStreamReader(ParserUtils.scrapeInputStream(apiUri, wrap(request, null), null, null, null, 3), ISO_8859_1);
final List<Location> results = new ArrayList<Location>();
@ -495,7 +495,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
try
{
reader = new InputStreamReader(ParserUtils.scrapeInputStream(apiUri, wrappedRequest, xmlMlcResEncoding, null, 3), xmlMlcResEncoding);
reader = new InputStreamReader(ParserUtils.scrapeInputStream(apiUri, wrappedRequest, xmlMlcResEncoding, null, null, 3), xmlMlcResEncoding);
final XmlPullParserFactory factory = XmlPullParserFactory.newInstance(System.getProperty(XmlPullParserFactory.PROPERTY_NAME), null);
final XmlPullParser pp = factory.newPullParser();
@ -961,7 +961,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
try
{
reader = new InputStreamReader(ParserUtils.scrapeInputStream(apiUri, wrap(request, null), null, null, 3), ISO_8859_1);
reader = new InputStreamReader(ParserUtils.scrapeInputStream(apiUri, wrap(request, null), null, null, null, 3), ISO_8859_1);
final XmlPullParserFactory factory = XmlPullParserFactory.newInstance(System.getProperty(XmlPullParserFactory.PROPERTY_NAME), null);
final XmlPullParser pp = factory.newPullParser();

View file

@ -33,6 +33,8 @@ public class VorProvider extends AbstractEfaProvider
public VorProvider()
{
super(API_BASE, null);
setReferer("http://www.wienerlinien.at/eportal/");
}
public NetworkId id()

View file

@ -225,10 +225,10 @@ public final class ParserUtils
public static final InputStream scrapeInputStream(final String url) throws IOException
{
return scrapeInputStream(url, null, null, null, 3);
return scrapeInputStream(url, null, null, null, null, 3);
}
public static final InputStream scrapeInputStream(final String urlStr, final String postRequest, Charset requestEncoding,
public static final InputStream scrapeInputStream(final String urlStr, final String postRequest, Charset requestEncoding, final String referer,
final String sessionCookieName, int tries) throws IOException
{
if (requestEncoding == null)
@ -248,6 +248,9 @@ public final class ParserUtils
// workaround to disable Vodafone compression
connection.addRequestProperty("Cache-Control", "no-cache");
if (referer != null)
connection.addRequestProperty("Referer", referer);
if (sessionCookieName != null && stateCookie != null)
connection.addRequestProperty("Cookie", stateCookie);