Unity 报错之 java.net.MalformedURLException: unknown protocol

举报
陈言必行 发表于 2021/08/13 22:55:50 2021/08/13
【摘要】 使用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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。