##はじめに
初投稿です。
タイトルの件について、既に解決している方も多いと思いますが、こういうケースがあったということで備忘録的に書き記します。
当時もあまり話題にされなかったので、原因がわからなくて詰まっている人の助けになれば幸いです。
##原因
Unity バージョン 2020.3.9 ~ 2020.3.15 または 2021.1.3 ~ 2021.1.16 で UnityWebRequest
などネットワーク機能を使っていると起こりうる問題で、
バージョンアップされた libcurl がサポートされていないデータ圧縮エンコーディングを拒否するようになり、gzip
圧縮をリクエストすると失敗を返すようになったことが原因でした。
他にSDK内で gzip
圧縮 を使っていた VRoid , Mapboxでも起きていたみたいですね。
IssueTracker: UNITYWEBREQUEST FAILS ON WINDOWS IF GZIP COMPRESSION IS USED
##解決
自分の環境では当時、リクエストヘッダーで "Accept-Encoding" に "gzip" を指定している箇所を "identity" に変更することで対処しました。
PlayFabでは、
PlayFabUnityHttp.cs で MakeApiCall 内の
reqContainer.RequestHeaders["X-Accept-Encoding"] = "GZIP";
と書かれているところを、
reqContainer.RequestHeaders["X-Accept-Encoding"] = "identity";
ですね。
現在は 2019.4.30, 2020.3.16, 2021.1.17 それぞれで UnityWebRequest
が gzip
圧縮をサポートするように修正されているので、まだエラーが出ている方は Unity のバージョンを確認してみてください。
しれっと 2019.4 で修正をしたと書きましたが、リリースノートに書いてあるのを見ただけで 2019.4 でいつから同様の問題が出ていたかは、発生報告を見つけられなかったのでわかりません。
参考程度に Unity リリースノートをリンクしておきます。
修正項目は Networking の分類です。
結論として、よほどの理由がない限り Unity のバージョンを上げたほうが良いでしょう。