Unity 报错之 java.net.MalformedURLException: unknown protocol
【摘要】 使用WWW获取信息时Android端报错:java.net.MalformedURLException: unknown protocol:报错网址
报错截图:
报错原因:访问的网址不正确,若是多打一个符号或者少打一个符号,运行Unity 或者 使用浏览器打开即可试出,网址是否正确。
我的错误:在Unity Editor下运行没有问题,可以正确访问,获取到想读...
使用WWW获取信息时Android端报错:java.net.MalformedURLException: unknown protocol:报错网址
报错截图:
报错原因:访问的网址不正确,若是多打一个符号或者少打一个符号,运行Unity 或者 使用浏览器打开即可试出,网址是否正确。
我的错误:在Unity Editor下运行没有问题,可以正确访问,获取到想读取的数据:
IEnumerator RequestShareLink() {
WWW www = new WWW("www.youryuming.com"); yield return www; if (www.error == null) { //打印出get请求回应内容 Debug.Log("读取的内容:" + www.text ); } else { Debug.Log("读取错误..."); }
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
此方法在Unity Editor 下运行没有问题。结果在发布Android包测试时,并没有获取到在Editor下所获取的内容。
不知道你是否看出了上面代码的问题。细心的你或者是有过使用经验的你应该早就看出了问题, 就是在WWW类的构造函数中传递的url,需要是一个有效的链接地址,上面"www.youryuming.com"这个地址看起来也没有什么问题,若是有效的,它在浏览器中上也可以打开。其实这个url 是不完整的,之所以它可以被使用,是因为浏览器为我们默认加上了"http://",,,看到这里问题就很明确了。
解决问题:在传递参数是前面加上"http://",上面代码修改为:
IEnumerator RequestShareLink() {
WWW www = new WWW("http://www.youryuming.com"); yield return www; if (www.error == null) { //打印出get请求回应内容 Debug.Log("读取的内容:" + www.text ); } else { Debug.Log("读取错误..."); }
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
其实在实际开发汇总这样的错应该都不会犯,只是若上面放写成公用的带url参数的方法的时候,这样就需要大家商量好了,传递的参数是否带有"http://"这个头了,,或者在这个调用www构造方法前,校验一下传递的链接字符串的是否是以"http://"开头的,,若是则校验通过,若不是则在字符串前面添加后再传递个www去访问,这样就可以避免 java.net.MalformedURLException这个报错了。
使用www时你是否还遇到过其他的坑,欢迎留言评论哦!!!
文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。
原文链接:czhenya.blog.csdn.net/article/details/93017760
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)