我正在尝试使用UnityWebRequest通过代理向服务器发出REST请求。我尝试使用
Network.useProxy = true;
但这失败并显示错误
Cannot connect to destination host
Network.useProxy
已在Unity 2018.2.12中删除。我可以通过邮递员连接并卷曲。有人可以确认UnityWebRequest不支持通过代理连接吗?
答案 0 :(得分:2)
即使不被弃用,它仍然无法正常工作,因为Unity的Network.useProxy
用于旧式网络系统,而UnityWebRequest
API并非其中的一部分。
UnityWebRequest
不支持代理,也没有计划在Unity roadmap
上添加对此的支持。投票支持here。
您唯一的解决方法是使用标准C#Web请求API之一,例如HttpWebRequest
和WebClient
。它们在Unity中受支持。通过HttpWebRequest
,您可以按以下方式使用代理:
string proxyHost = "192.168.1.3";
int proxyPort = 8080;
string url = "http://YourUrl.com/blah";
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
request.Proxy = new WebProxy(proxyHost, proxyPort);
由于它不是UnityWebRequest
,因此您必须在另一个Thread
中这样做,以防止阻塞游戏主线程。