diff --git a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java
index 0ce99b75..630a537a 100644
--- a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java
+++ b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java
@@ -1695,7 +1695,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
InputStream is = null;
try
{
- is = ParserUtils.scrapeInputStream(uri, null, "NSC_", 3);
+ is = ParserUtils.scrapeInputStream(uri, null, null, "NSC_", 3);
return queryConnections(uri, is);
}
catch (final XmlPullParserException x)
@@ -1726,7 +1726,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
InputStream is = null;
try
{
- is = new BufferedInputStream(ParserUtils.scrapeInputStream(uri.toString(), null, "NSC_", 3));
+ is = new BufferedInputStream(ParserUtils.scrapeInputStream(uri.toString(), null, null, "NSC_", 3));
is.mark(512);
return queryConnections(uri.toString(), is);
diff --git a/enabler/src/de/schildbach/pte/AbstractHafasProvider.java b/enabler/src/de/schildbach/pte/AbstractHafasProvider.java
index 9cfd183a..ada84349 100644
--- a/enabler/src/de/schildbach/pte/AbstractHafasProvider.java
+++ b/enabler/src/de/schildbach/pte/AbstractHafasProvider.java
@@ -155,9 +155,9 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
return new String[] { null, name };
}
- private final String wrap(final String request)
+ private final String wrap(final String request, final Charset encoding)
{
- return "" //
+ return "" //
+ "" //
+ request //
+ "";
@@ -246,7 +246,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
try
{
- reader = new InputStreamReader(ParserUtils.scrapeInputStream(apiUri, wrap(request), null, 3), ISO_8859_1);
+ reader = new InputStreamReader(ParserUtils.scrapeInputStream(apiUri, wrap(request, null), null, null, 3), ISO_8859_1);
final List results = new ArrayList();
@@ -451,14 +451,15 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
protected final List xmlMLcReq(final CharSequence constraint) throws IOException
{
final String request = "";
+ final String wrappedRequest = wrap(request, xmlMlcResEncoding);
- // ParserUtils.printXml(ParserUtils.scrape(apiUri, true, wrap(request), mlcResEncoding, false));
+ // ParserUtils.printXml(ParserUtils.scrape(apiUri, true, wrappedRequest, xmlMlcResEncoding, null));
Reader reader = null;
try
{
- reader = new InputStreamReader(ParserUtils.scrapeInputStream(apiUri, wrap(request), null, 3), xmlMlcResEncoding);
+ reader = new InputStreamReader(ParserUtils.scrapeInputStream(apiUri, wrappedRequest, xmlMlcResEncoding, null, 3), xmlMlcResEncoding);
final XmlPullParserFactory factory = XmlPullParserFactory.newInstance(System.getProperty(XmlPullParserFactory.PROPERTY_NAME), null);
final XmlPullParser pp = factory.newPullParser();
@@ -838,7 +839,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
try
{
- reader = new InputStreamReader(ParserUtils.scrapeInputStream(apiUri, wrap(request), null, 3), ISO_8859_1);
+ reader = new InputStreamReader(ParserUtils.scrapeInputStream(apiUri, wrap(request, null), null, null, 3), ISO_8859_1);
final XmlPullParserFactory factory = XmlPullParserFactory.newInstance(System.getProperty(XmlPullParserFactory.PROPERTY_NAME), null);
final XmlPullParser pp = factory.newPullParser();
diff --git a/enabler/src/de/schildbach/pte/util/ParserUtils.java b/enabler/src/de/schildbach/pte/util/ParserUtils.java
index b96c31df..b364028c 100644
--- a/enabler/src/de/schildbach/pte/util/ParserUtils.java
+++ b/enabler/src/de/schildbach/pte/util/ParserUtils.java
@@ -195,12 +195,15 @@ public final class ParserUtils
public static final InputStream scrapeInputStream(final String url) throws IOException
{
- return scrapeInputStream(url, null, null, 3);
+ return scrapeInputStream(url, null, null, null, 3);
}
- public static final InputStream scrapeInputStream(final String urlStr, final String postRequest, final String sessionCookieName, int tries)
- throws IOException
+ public static final InputStream scrapeInputStream(final String urlStr, final String postRequest, Charset requestEncoding,
+ final String sessionCookieName, int tries) throws IOException
{
+ if (requestEncoding == null)
+ requestEncoding = SCRAPE_DEFAULT_ENCODING;
+
while (true)
{
final URL url = new URL(urlStr);
@@ -224,7 +227,7 @@ public final class ParserUtils
connection.addRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connection.addRequestProperty("Content-Length", Integer.toString(postRequest.length()));
- final Writer writer = new OutputStreamWriter(connection.getOutputStream(), SCRAPE_DEFAULT_ENCODING);
+ final Writer writer = new OutputStreamWriter(connection.getOutputStream(), requestEncoding);
writer.write(postRequest);
writer.close();
}
diff --git a/enabler/test/de/schildbach/pte/live/EireannProviderLiveTest.java b/enabler/test/de/schildbach/pte/live/EireannProviderLiveTest.java
index dc275f54..f2907dee 100644
--- a/enabler/test/de/schildbach/pte/live/EireannProviderLiveTest.java
+++ b/enabler/test/de/schildbach/pte/live/EireannProviderLiveTest.java
@@ -66,7 +66,7 @@ public class EireannProviderLiveTest extends AbstractProviderLiveTest
}
@Test
- public void autoComplete() throws Exception
+ public void autocomplete() throws Exception
{
final List autocompletes = provider.autocompleteStations("Dublin");
@@ -74,7 +74,15 @@ public class EireannProviderLiveTest extends AbstractProviderLiveTest
}
@Test
- public void autoCompleteAddress() throws Exception
+ public void autocompleteUmlaut() throws Exception
+ {
+ final List autocompletes = provider.autocompleteStations("Busáras");
+
+ print(autocompletes);
+ }
+
+ @Test
+ public void autocompleteAddress() throws Exception
{
final List autocompletes = provider.autocompleteStations("Dorfstrasse 10, Dällikon, Schweiz");
diff --git a/enabler/test/de/schildbach/pte/live/NasaProviderLiveTest.java b/enabler/test/de/schildbach/pte/live/NasaProviderLiveTest.java
index 14d2da2b..8f79cd9a 100644
--- a/enabler/test/de/schildbach/pte/live/NasaProviderLiveTest.java
+++ b/enabler/test/de/schildbach/pte/live/NasaProviderLiveTest.java
@@ -65,6 +65,14 @@ public class NasaProviderLiveTest extends AbstractProviderLiveTest
print(autocompletes);
}
+ @Test
+ public void autocompleteUmlaut() throws Exception
+ {
+ final List autocompletes = provider.autocompleteStations("Höhle");
+
+ print(autocompletes);
+ }
+
@Test
public void shortConnection() throws Exception
{
diff --git a/enabler/test/de/schildbach/pte/live/OebbProviderLiveTest.java b/enabler/test/de/schildbach/pte/live/OebbProviderLiveTest.java
index 970504c5..72badab0 100644
--- a/enabler/test/de/schildbach/pte/live/OebbProviderLiveTest.java
+++ b/enabler/test/de/schildbach/pte/live/OebbProviderLiveTest.java
@@ -73,7 +73,7 @@ public class OebbProviderLiveTest extends AbstractProviderLiveTest
}
@Test
- public void autoComplete() throws Exception
+ public void autocomplete() throws Exception
{
final List autocompletes = provider.autocompleteStations("Wien");
@@ -81,6 +81,14 @@ public class OebbProviderLiveTest extends AbstractProviderLiveTest
assertTrue(autocompletes.size() > 0);
}
+ @Test
+ public void autocompleteUmlaut() throws Exception
+ {
+ final List autocompletes = provider.autocompleteStations("Obirhöhle");
+
+ print(autocompletes);
+ }
+
@Test
public void shortConnection() throws Exception
{
diff --git a/enabler/test/de/schildbach/pte/live/PlProviderLiveTest.java b/enabler/test/de/schildbach/pte/live/PlProviderLiveTest.java
index 6602697f..cc779839 100644
--- a/enabler/test/de/schildbach/pte/live/PlProviderLiveTest.java
+++ b/enabler/test/de/schildbach/pte/live/PlProviderLiveTest.java
@@ -73,6 +73,14 @@ public class PlProviderLiveTest extends AbstractProviderLiveTest
print(autocompletes);
}
+ @Test
+ public void autocompleteUmlaut() throws Exception
+ {
+ final List autocompletes = provider.autocompleteStations("Służewiec");
+
+ print(autocompletes);
+ }
+
@Test
public void shortConnection() throws Exception
{
diff --git a/enabler/test/de/schildbach/pte/live/RmvProviderLiveTest.java b/enabler/test/de/schildbach/pte/live/RmvProviderLiveTest.java
index 3a76e27f..ff9dce2a 100644
--- a/enabler/test/de/schildbach/pte/live/RmvProviderLiveTest.java
+++ b/enabler/test/de/schildbach/pte/live/RmvProviderLiveTest.java
@@ -73,6 +73,14 @@ public class RmvProviderLiveTest extends AbstractProviderLiveTest
print(autocompletes);
}
+ @Test
+ public void autocompleteUmlaut() throws Exception
+ {
+ final List autocompletes = provider.autocompleteStations("Wächtersbach");
+
+ print(autocompletes);
+ }
+
@Test
public void shortConnection() throws Exception
{
diff --git a/enabler/test/de/schildbach/pte/live/SbbProviderLiveTest.java b/enabler/test/de/schildbach/pte/live/SbbProviderLiveTest.java
index 82ff1f09..297ca0c0 100644
--- a/enabler/test/de/schildbach/pte/live/SbbProviderLiveTest.java
+++ b/enabler/test/de/schildbach/pte/live/SbbProviderLiveTest.java
@@ -66,7 +66,7 @@ public class SbbProviderLiveTest extends AbstractProviderLiveTest
}
@Test
- public void autoComplete() throws Exception
+ public void autocomplete() throws Exception
{
final List autocompletes = provider.autocompleteStations("haupt");
@@ -74,7 +74,15 @@ public class SbbProviderLiveTest extends AbstractProviderLiveTest
}
@Test
- public void autoCompleteAddress() throws Exception
+ public void autocompleteUmlaut() throws Exception
+ {
+ final List autocompletes = provider.autocompleteStations("Höhle");
+
+ print(autocompletes);
+ }
+
+ @Test
+ public void autocompleteAddress() throws Exception
{
final List autocompletes = provider.autocompleteStations("Dorfstrasse 10, Dällikon, Schweiz");
diff --git a/enabler/test/de/schildbach/pte/live/ShProviderLiveTest.java b/enabler/test/de/schildbach/pte/live/ShProviderLiveTest.java
index 426d1048..4ce2e78b 100644
--- a/enabler/test/de/schildbach/pte/live/ShProviderLiveTest.java
+++ b/enabler/test/de/schildbach/pte/live/ShProviderLiveTest.java
@@ -73,6 +73,14 @@ public class ShProviderLiveTest extends AbstractProviderLiveTest
print(autocompletes);
}
+ @Test
+ public void autocompleteUmlaut() throws Exception
+ {
+ final List autocompletes = provider.autocompleteStations("Achterüm");
+
+ print(autocompletes);
+ }
+
@Test
public void shortConnection() throws Exception
{
diff --git a/enabler/test/de/schildbach/pte/live/VbbProviderLiveTest.java b/enabler/test/de/schildbach/pte/live/VbbProviderLiveTest.java
index d6f1eec3..7e133e4d 100644
--- a/enabler/test/de/schildbach/pte/live/VbbProviderLiveTest.java
+++ b/enabler/test/de/schildbach/pte/live/VbbProviderLiveTest.java
@@ -65,6 +65,14 @@ public class VbbProviderLiveTest extends AbstractProviderLiveTest
print(result);
}
+ @Test
+ public void autocompleteUmlaut() throws Exception
+ {
+ final List autocompletes = provider.autocompleteStations("Hedwigshöhe");
+
+ print(autocompletes);
+ }
+
@Test
public void autocompleteIncomplete() throws Exception
{