问题背景:
有一个项目用到3d模型,原来访问地址用的是域名,访问老是报跨域问题,于是换成了内网地址
这么一换问题来了,控制台直接报错
FormatException: Invalid URI
at UnityEngineInternal.WebRequestUtils.MakeInitialUrl (System.String targetUrl, System.String localUrl) [0x00000] in <00000000000000000000000000000000>:0
排查了半天才发现问题,特地记录下
解决方法:
访问地址是存在一个叫IP.txt 的文件里的,我是通过vi直接修改地址保存,保存完后如下
地址没毛病吧,但是怎么访问都是报错
于是我又再地址后面加了个/
这时可以看到报错变了
变成了:GET http://192.168.100.93:8085/%0A/3d/riskListByAreaId?areaId=7017 404 (Not Found)
仔细一看,地址中间凭空多了%0A
线索找到了,于是开始搜索 《连接里多了%0A》
https://blog.51cto.com/knifeedge/5667770
看到这篇,我联想到这是.txt文件,会不会是 windows和linux的字符编码差异导致的问题?
于是我在本地windows机器新建txt文件,写入http://192.168.100.93:8085地址,再上传
顿时,访问正常了!
这时再看文件内容,好家伙,果然不一样有木有。。
所以以后再遇到类似的问题,思路就有了,很大概率问题集中在文件字符编码层面