Android中MalformedURLException的解决

当我们需要创建一个URL对象的时候,可以通过以下方法:

URL url = new URL(urlString);

其中的urlString表示的是我们的链接地址,当我们出现MalformedURLException异常的时候,有可能的原因是:

1.urlString对应的链接地址需要在前面添加上“http://”,平时我们在浏览器的地址栏中不需要添加“http://”,因为浏览器默认使用的的是http协议,浏览器会帮我们添加上“http://”,而在我们创建URL对象的时候,并不会自动添加,所以需要添加上“http://”

2.当URL的地址涉及到中文时,需要对URL进行格式转换,对urlString进行转换的时候,只能对其中的中文单独进行转化格式,不能将整一个URL进行转换,因为其他正常的字符可能会被转化为不正确的URL字符:

转化的关键代码:

urlString = URLEncoder.encode(urlString, "utf8"); //这里只为了举例,并没有考虑对其中的中文单独进行转换。
时间: 2024-11-15 10:35:48

Android中MalformedURLException的解决的相关文章

RxJava在Android中内存泄漏解决以及RxJava的封装。

RxJava在现在是一个非常前卫的异步框架,也是由于他非常新,所以比较难以驾驭. 像okhttp直接在onStop或者onDestroy 调用它的cancel方法就行了,但是Rxjava并没有那么简单. 因为假如每次请求都得到Observable对象,然后再onStop中unsubscribe取消,这样很不利于封装.而且会造成代码量很多,所以我找到了用rxlifecycle的解决方案. 先导包 compile 'com.trello:rxlifecycle:0.5.0' compile 'com

RxJava在Android中内存泄漏解决以及RxJava的封装

本文转自:http://blog.csdn.net/adzcsx2 RxJava在现在是一个非常前卫的异步框架,也是由于他非常新,所以比较难以驾驭. 像okhttp直接在onStop或者onDestroy 调用它的cancel方法就行了,但是Rxjava并没有那么简单. 因为假如每次请求都得到Observable对象,然后再onStop中unsubscribe取消,这样很不利于封装.而且会造成代码量很多,所以我找到了用rxlifecycle的解决方案. 先导包 compile 'com.trel

解决Android中No resource found that matches android:TextAppearance.Material.Widget.Button.Inverse问题

解决Android中No resource found that matches android:TextAppearance.Material.Widget.Button.Inverse问题http://blog.csdn.net/u012336923/article/details/48289485 /路径/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.1/res/values-v23/v

Android中使用Handler造成内存泄露的分析和解决

什么是内存泄露? Java使用有向图机制,通过GC自动检查内存中的对象(什么时候检查由虚拟机决定),如果GC发现一个或一组对象为不可到达状态,则将该对象从内存中回收.也就是说,一个对象不被任何引用所指向,则该对象会在被GC发现的时候被回收:另外,如果一组对象中只包含互相的引用,而没有来自它们外部的引用(例如有两个对象A和B互相持有引用,但没有任何外部对象持有指向A或B的引用),这仍然属于不可到达,同样会被GC回收. Android中使用Handler造成内存泄露的原因 Handler mHand

解决Android中,禁止ScrollView内的控件改变之后自动滚动

问题: 最近在写一个程序界面,有一个scrollVIew,其中有一段内容是需要在线加载的. 当内容加载完成后,ScrollView中内容的长度会发生改变,这时ScrollView会自动下滚,如下图所示: 滚动的那一下体验特别不好,所以要防止这种情况.即不论Scrollview中内容如何,都要保持在最上. 解决办法: 先简单写一下我的xml文件的结构: [html] view plaincopy <ScrollView android:id="@+id/scrollView1" a

Android中View类OnClickListener和DialogInterface类OnClickListener冲突解决办法

如下面所示,同时导入这两个,会提示其中一个与另一个产生冲突. 1 import android.view.View.OnClickListener; 2 import android.content.DialogInterface.OnClickListener; 其实,当我们用某个Listener时,不一定就要import它,直接用全名去定义就不需要import了,例如 1 mButton1.setOnClickListener(new OnClickListener() 2 { 3 4 @O

【转】【已解决】Android中ActionBar中不显示overflow(就是三个点的那个按钮)--不错

原文网址:http://www.crifan.com/android_actionbar_three_dot_overflow_not_show/ [问题] 折腾: [记录]继续尝试给Android程序的右上角的ActionBar中添加三个点的选项按钮 期间,已经按照官网的教程: Action Bar | Android Developers 去添加代码,增加menu,然后显示在ActionBar中了. 但是遇到的问题是: 对于menu的item,没有指定android:showAsAction

【转】Android中引入第三方Jar包的方法(java.lang.NoClassDefFoundError解决办法)

原文网址:http://www.blogjava.net/anchor110/articles/355699.html 1.在工程下新建lib文件夹,将需要的第三方包拷贝进来.2.将引用的第三方包,添加进工作的build path.3.(关键的一步)将lib设为源文件夹.如果不设置,则程序编译可以通过,但运行的时候,会报: java.lang.NoClassDefFoundError # re: Android中引入第三方Jar包的方法(java.lang.NoClassDefFoundErro

【转】android中重复连接ble设备导致的连接后直接返回STATE_DISCONNECTED的解决办法

原文网址:http://bbs.eeworld.com.cn/thread-438571-1-1.html /*                         * 通过使用if(gatt==null)来判断gatt是否被创建过,如果创建过就使用gatt.connect();重新建立连接.                         * 但是在这种情况下测试的结果是重新连接需要花费很长的时间.                         * 解决办法是通过gatt = device.co