2013-03-03 2 views
0

Dans ma demande, je suis en mesure d'exécuter cette méthode ci-dessous avec le code suivant:caractère illégal dans la requête

fahrtenStr = getHtml("http://myServer.com/abc/getFahrtenList.cgi?limit=15"); 

Mais si j'essaie d'utiliser cette version, pour appeler la méthode, il doesen't travail :

String url = "http://myServer.com/abc/insert_fahrt.cgi?values="+startKM+"x"+endKM+"x"+fahrer; 
getHtml(url); 

Là, je suis l'erreur suivante message:

03-03 16:49:15.363: E/AndroidRuntime(21355): java.lang.IllegalArgumentException: Illegal character in query at index 65: http://myServer.com/abc/insert_fahrt.cgi?values=11003.4 
03-03 16:49:15.363: E/AndroidRuntime(21355): x111111xSimon 
03-03 16:49:15.363: E/AndroidRuntime(21355): at java.net.URI.create(URI.java:727) 
03-03 16:49:15.363: E/AndroidRuntime(21355): at org.apache.http.client.methods.HttpGet.<init>(HttpGet.java:75) 
03-03 16:49:15.363: E/AndroidRuntime(21355): at net.x.y.fahrtenbuch.Uebersicht.getHtml(Uebersicht.java:255) 
03-03 16:49:15.363: E/AndroidRuntime(21355): at net.x.y.fahrtenbuch.Uebersicht$3$1.run(Uebersicht.java:153) 

ma fonction:

public String getHtml(String url) throws ClientProtocolException, IOException { 
    HttpClient httpClient = new DefaultHttpClient(); 
    HttpContext localContext = new BasicHttpContext(); 
    HttpGet httpGet = new HttpGet(url); 
    HttpResponse response = httpClient.execute(httpGet, localContext); 
    String result = ""; 

    BufferedReader reader = 
     new BufferedReader(new InputStreamReader(response.getEntity().getContent())); 

    String line = null; 
    while ((line = reader.readLine()) != null){ 
     result += line + "\n"; 
     // Toast.makeText(Connect.this, line.toString(), Toast.LENGTH_LONG).show(); 

    } 
    return result; 
} 

Et enfin mes variables utilisées:

//Variable values 
    startKM: String="11003.4" 
    endKM: String="11111" 
    fahrer : "Simon" 
+3

Il semble que vous ayez une nouvelle ligne rogue – SLaks

+0

Non, c'était mon Débogueur ... Ceci est dans une ligne ... – bbholzbb

+1

"Ceci est dans une ligne" - pas selon le système d'exploitation, qui montre qu'il est divisé sur deux lignes dans LogCat. – CommonsWare

Répondre

0

Essayez cette

String url = "http://myServer.com/abc/insert_fahrt.cgi?values="+startKM+"x"+endKM+"x"+fahrer; 
url.replaceAll(" ","%20"); 
getHtml(url); 

L'espace est fonctionne pas dans l'url Vous pouvez avoir l'espace dans vos trois variables (startKM, endKM, fahrer dans l'espace d'url doit être remplacer par% 20

Questions connexes