-1

我有一个 android 应用程序,并在我的网站上添加了 ssl 以在登录时保护登录信息。我有一个异步任务,它发送信息以检查数据库等。

设置我的 ssl 正确后,看到它可以在我的网站上运行。我尝试在我的异步任务的 url 中将 http: 更改为 https: ,但它因以下错误而崩溃:

08-19 19:14:16.779    9314-9465/com.beerportfolio.beerportfoliopro E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
        java.lang.RuntimeException: An error occured while executing doInBackground()
        at android.os.AsyncTask$3.done(AsyncTask.java:299)
        at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
        at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
        at java.util.concurrent.FutureTask.run(FutureTask.java:137)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
        at java.lang.Thread.run(Thread.java:864)
        Caused by: java.lang.IllegalArgumentException: Illegal character in query at index 50: https://myDBUrl
        at java.net.URI.create(URI.java:727)
        at org.apache.http.client.methods.HttpGet.<init>(HttpGet.java:75)
        at com.example.beerportfoliopro.ReadLogInJSON.readJSONFeed(ReadLogInJSON.java:90)
        at com.example.beerportfoliopro.ReadLogInJSON.doInBackground(ReadLogInJSON.java:37)
        at com.example.beerportfoliopro.ReadLogInJSON.doInBackground(ReadLogInJSON.java:24)
        at android.os.AsyncTask$2.call(AsyncTask.java:287)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
        ... 5 more

更新:

发现错误不在 ssl 部分,但是当使用在用户名末尾添加空格的自动更正键盘时,它会崩溃。如果输入,我怎样才能消除这个空间?

4

1 回答 1

-1

您可以随时编写一个 util 函数并使用它来避免此类错误:

private String urlEncode(String url)
    {
        if(url == null)
            return null;
        url = url.replace("[","");
        url = url.replace("]","");
        url = url.replaceAll(" ","%20");
        return url;
    }
于 2013-08-19T23:41:51.750 回答