Android 加号 ("+") 在 url

标签 android

我无法下载图片: http://www.wallpick.com/wp-content/uploads/2014/02/08/Water+Sports_wallpapers_242-640x480.jpg

这是我的代码:

//来自网络

    try {
        Bitmap bitmap = null;

        URL imageUrl = new URL(url);
        HttpURLConnection conn = (HttpURLConnection) imageUrl
                .openConnection();
        conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        conn.setConnectTimeout(25000);
        conn.setReadTimeout(25000);
        conn.setInstanceFollowRedirects(true);
        InputStream is = conn.getInputStream();
        OutputStream os = new FileOutputStream(f);
        // save file to m_FileCache
        copyStream(is, os);
        os.close();
        bitmap = decodeFile(f);
        return bitmap;
    } catch (Throwable ex) {
        return null;
    }

使用这段代码,我可以将所有图片 url 下载为:

http://www.wallpick.com/wp-content/uploads/2014/02/08/pictures-of-lotus-flowers-on-water-640x480.jpg

根本原因是第一个链接中的加号 ("+")。请帮我!非常感谢!

最佳答案

您可以使用 Uri 构建器类。例如,

String url = Uri.parse("http://www.wallpick.com/wp-content/uploads/2014/02/08/").buildUpon()
            .appendEncodedPath("Water+Sports_wallpapers_242-640x480.jpg")
            .build().toString();

这将正确编码您的 url 字符串。

关于Android 加号 ("+") 在 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22839733/

相关文章:

java - Android:无法为标题设置 TextView

java - 有没有一种方法可以在服务和 Activity 之间传递数据而不启动后者?

android - 如何在一个 Activity 中隐藏android中的状态栏

c# - 如何使 Xamarin 应用全屏(全屏)

android - 模拟器 kitkat API 级别 19 中的 Google Play 服务错误

java - Android Actionbar 选项卡和键盘焦点

java - Android "application stopped unexpectedly"- google Hello MapView 教程

android - passwordToggleEnabled 设置为 true 但不起作用

android - 使用 Intents 打开最近写入的文件

java - Android电池电压单位差异