如何在Unity il2cpp构建上使用带代理的HttpClient



下面的代码适用于编辑器和mono构建,但不适用于il2cpp构建。

我发现了以下错误报告:https://fogbugz.unity3d.com/default.asp?1156595_buha3p1v4iq7vpv9

并注意到开发人员已决定不修复此问题。

那么,il2cpp构建有什么解决方案吗。感谢

if (Settings.GetBool_AndIsTrue("useSystemProxy"))
{
print("use System proxy");
HttpClientHandler handler = new();
handler.Proxy = WebRequest.GetSystemWebProxy();
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3
| SecurityProtocolType.Tls
| (SecurityProtocolType)0x300 //Tls11 .net framework 4.0
| (SecurityProtocolType)0xC00; //Tls12 .net framework 4.0
httpClient = new HttpClient(handler);
}

httpClient.Timeout = new TimeSpan(0, 0, 0, 10);

string result = string.Empty;
//first try
try
{
result = httpClient.GetStringAsync(url).Result;
}

我使用UnityWebRequest。现在看来还可以。某些代码:

UnityWebRequest req = UnityWebRequest.Get(url);
req.timeout = 10;
yield return req.SendWebRequest();
if (string.IsNullOrEmpty(req.error))
{
var objects = Json.ToObject<List<object>>(req.downloadHandler.text);
string translation = "";
var translationItems = (IEnumerable)objects[0];
foreach (object item in translationItems)
{
IEnumerable translationLineObject = item as IEnumerable;
IEnumerator translationLineString = translationLineObject.GetEnumerator();
translationLineString.MoveNext();
translation += $" {Convert.ToString(translationLineString.Current)}";
}
// Remove first blank character
if (translation.Length > 1)
{
translation = translation[1..];
}
result.Add(translation);
}

最新更新