通过代理使用UnityWebRequest的REST连接

时间:2018-11-08 17:21:38

标签: c# unity3d proxy

我正在尝试使用UnityWebRequest通过代理向服务器发出REST请求。我尝试使用

Network.useProxy = true;

但这失败并显示错误

Cannot connect to destination host

Network.useProxy已在Unity 2018.2.12中删除。我可以通过邮递员连接并卷曲。有人可以确认UnityWebRequest不支持通过代理连接吗?

1 个答案:

答案 0 :(得分:2)

即使不被弃用,它仍然无法正常工作,因为Unity的Network.useProxy用于旧式网络系统,而UnityWebRequest API并非其中的一部分。

UnityWebRequest不支持代理,也没有计划在Unity roadmap上添加对此的支持。投票支持here

您唯一的解决方法是使用标准C#Web请求API之一,例如HttpWebRequestWebClient。它们在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中这样做,以防止阻塞游戏主线程。