Closed2

UnityWebRequestを利用してサーバー上においてあるJsonファイルを返してもらうときにつまづいたこと

eisukeeisuke

問題箇所

public class JsonDownloader : MonoBehaviour
{
private string jsonUrl = "http://example.com/Example.json";
async void Start()
{
    await DownloadJson();
}

private async UniTask DownloadJson()
{
    UnityWebRequest request = UnityWebRequest.Get(jsonUrl);

    await request.SendWebRequest();

    if (request.result == UnityWebRequest.Result.Success)
    {
        string json = request.downloadHandler.text;
        ExampleParameter parameter = JsonUtility.FromJson<ExampleParameter>(json);
        // ここでparameterを使って処理を行う
    }
    else
    {
        Debug.LogError("Jsonダウンロードエラー: " + request.error);
    }
}

エラー内容

InvalidOperationException: Insecure connection not allowed
UnityEngine.Networking.UnityWebRequest.SendWebRequest () (at <e0fcda41755546dbb665cb70c72ace16>:0)..........以下省略

解決方法


ProjectSettingsからAllow downloads over HTTPという項目をAlways allowed に変更する!

ただ大々的にやると危険なのでhttpsに対応したリンクから取得するようにしよう

eisukeeisuke

あとがき

今回問題だったのは取得先のURLがhttpになっていたこと。

private string jsonUrl = "http://example.com/Example.json";

httpsだと安全にやり取りができる

このスクラップは2023/04/19にクローズされました