0

私のアプリケーションでは、次のコードでこのメソッドを実行できます。

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

しかし、このバージョンを使用してメソッドを呼び出そうとすると、機能しません。

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

そこで、次のエラーメッセージが表示されました。

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)

私の機能:

    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;
}

そして最後に私の使用変数:

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

1 に答える 1

0

これを試して

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

スペースは URL では機能しません URL スペースの 3 つの変数 (startKM、endKM、fahrer) にスペースがある場合は、%20 に置き換える必要があります

于 2016-10-12T21:28:29.750 に答える