URL中发现的非法字符由Unity WWW类返回

时间:2017-10-26 12:22:53

标签: c# url unity3d web

我有一个非常奇怪的问题我有网址

http://localhost:5001/vr

当我直接将此URL分配给我的检查器然后传递给WWW类时,它可以正常工作,但是当我使用此代码通过文本文件获取相同的URL时:

string filePath = Application.dataPath + "/" + urlFile;
string urls = File.ReadAllText(filePath);
string[] url = urls.Split('\n');
string getURL = url[0];//this is the url
string doneURL = url[1];

我在www类

中收到此错误
  

在网址

中找到非法字符

没有任何违法行为我记录了网址,这完全没问题。代码是我得到错误的地方(简短代码段)

WWW www = new WWW (getURL);
yield return www;

if (www.error != null)
{
    Debug.Log("Error" + www.error);
}

1 个答案:

答案 0 :(得分:2)

如果您的txt文件保存在Windows框中,我希望\r位于您的Url的末尾,因为它默认为\r\n以分隔行。请改用ReadAllLines方法。它确实处理与操作系统默认值相关的行结尾。

string filePath = Application.dataPath + "/" + urlFile;
// read all lines, and let the Framework do the split in lines
// it is much better at it.
string[] url = File.ReadAllLines(filePath); // <<--- HERE IS YOUR SOLUTION!!!!!
string getURL = url[0];//this is the url
string doneURL = url[1]; 

你得到了与Using curl in a bash script and getting curl: (3) Illegal characters found in URL中描述的相同的错误(感谢@mjwills指出这一点),并且为bash脚本提供的解决方案与我在此C#解决方案中提出的解决方案相同。我还没有确认Unity3D的WWW类实际上使用cURL库作为其实现,但它似乎是一个可行的假设。