簡體   English   中英

在iPhone上運行時,RestSharp在Unity3d中崩潰

[英]RestSharp is crashing with Unity3d when running on iPhone

我正在嘗試將RestSharp附加到Unity3d。 原始的RestSharp mono lib在Editor中工作正常,但在設備上因調用棧而崩潰

ArgumentOutOfRangeException: Argument is out of range.
Parameter name: options
at System.Security.Cryptography.X509Certificates.X509CertificateCollection.GetEnumerator () [0x00000] in <filename unknown>:0 
at System.Text.RegularExpressions.Regex.validate_options (RegexOptions options) [0x00000] in <filename unknown>:0 
at System.Text.RegularExpressions.Regex..ctor (System.String pattern, RegexOptions options) [0x00000] in <filename unknown>:0 
at RestSharp.RestClient..ctor () [0x00000] in <filename unknown>:0 
at RestSharp.RestClient..ctor (System.String baseUrl) [0x00000] in <filename unknown>:0 

這意味着,異常出現在ctor RestClient(string)內部,這是默認ctor的包裝。 在默認的ctor內部,

public RestClient()
    {
#if WINDOWS_PHONE
        this.UseSynchronizationContext = true;
#endif
        this.ContentHandlers = new Dictionary<string, IDeserializer>();
        this.AcceptTypes = new List<string>();
        this.DefaultParameters = new List<Parameter>();

        // register default handlers
        this.AddHandler("application/json", new JsonDeserializer());
        this.AddHandler("application/xml", new XmlDeserializer());
        this.AddHandler("text/json", new JsonDeserializer());
        this.AddHandler("text/x-json", new JsonDeserializer());
        this.AddHandler("text/javascript", new JsonDeserializer());
        this.AddHandler("text/xml", new XmlDeserializer());
        this.AddHandler("*+json", new JsonDeserializer());
        this.AddHandler("*+xml", new XmlDeserializer());
        this.AddHandler("*", new XmlDeserializer());

        this.FollowRedirects = true;
    }

在這一點上,我看不到Regex ctor的下一步出現在哪里。 有任何想法嗎?

在使用Unity 5.2.1構建獨立的Windows項目時,我們遇到了相同的問題。 在編輯器中,一切正常,直到您創建了構建。

我相信問題與“ AddHandler”方法中使用的“ structuredSyntaxSuffixWildcardRegex”有關。 雖然我不知道為什么它會失敗,但我確實知道RestSharp的先前版本確實可以為我們工作。

我猜您也在使用最新的RestSharp版本,因此您可以嘗試一下RestSharp v105.1.0嗎?

它似乎從Restshap v105.2.1停止運行,我正在查看這些提交,以查看可能的罪魁禍首。 如果找到解決方案,我將進行修復。

另外,我必須通知您,由於缺少Mono.Posix庫,在我們的情況下,GZIP解壓縮也無法正常工作。 當服務器返回壓縮的響應並且RestClient允許它時,就會發生此問題。 我們必須使用Fabman08的修復程序來解決此問題,該修復程序使解壓縮可配置

我分叉了RestSharp存儲庫,以嘗試解決上述問題以及其他與Unity相關的問題。 它位於: https : //github.com/eamonwoortman/RestSharp.Unity

您的問題和其他問題已得到修復,並已針對64位獨立Windows版本進行了測試。

您能否驗證這些修復程序是否也可以在您的iOS項目上使用? 確保您構建RestSharp.Net35.Unity項目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM