Ejemplo n.º 1
0
    public void OnStartClick()
    {
        CreateHttp3();
        var list = new List <Http3Sharp.RequestParamaters>
        {
            new Http3Sharp.RequestParamaters
            {
                Path         = Path,
                SaveFilePath = SaveFilePath,
                Headers      = new Http3Sharp.Headers[4]
                {
                    new Http3Sharp.Headers {
                        Name = "hoge0", Value = "var0"
                    },
                    new Http3Sharp.Headers {
                        Name = "hoge1", Value = "var1"
                    },
                    new Http3Sharp.Headers {
                        Name = "hoge2", Value = "var2"
                    },
                    new Http3Sharp.Headers {
                        Name = "hoge3", Value = "var3"
                    },
                }
            }
        };

        Http3.PublishRequest(list);

        StartButton.interactable = false;
        Body.text = string.Empty;
    }
Ejemplo n.º 2
0
 public void OnDestroy()
 {
     if (null != Http3)
     {
         Http3.Destroy();
     }
 }
Ejemplo n.º 3
0
 public void OnAbortClick()
 {
     if (null != Http3)
     {
         Http3.Abort();
         Clear();
     }
 }
Ejemplo n.º 4
0
 public void OnRetryClick()
 {
     if (null != Http3)
     {
         Http3.Retry();
         _isRetry = true;
         Clear();
     }
 }
Ejemplo n.º 5
0
    public void OnStartClick()
    {
        CreateHttp3(MaxMultipleDownloadNum);

        // 1k-10M のデータを DownloadFileNum 個ダウンロードする
        TotalDownloadSize = 0;
        var list = new List <Http3Sharp.RequestParamaters>();

        for (ulong num = 0; num < DownloadFileNum; ++num)
        {
            var fileSize = (ulong)new System.Random().Next(1, 1000) * 1024;
            TotalDownloadSize += fileSize;
            list.Add(new Http3Sharp.RequestParamaters
            {
                SaveFilePath = $"{WorkDir}\\{num}",
                Path         = $"{fileSize}",
            });
        }
        ;
        Http3.PublishRequest(list);

        StartButton.interactable  = false;
        _completedDownloadFileNum = 0;
    }
Ejemplo n.º 6
0
    protected List <Http3Sharp.ResponseParamaters> Http3Update()
    {
        var resList = new List <Http3Sharp.ResponseParamaters>();

        if (null == Http3)
        {
            return(resList);
        }

        // リクエストを開始していない、終了した状態でも Update は呼び出してコネクションの状態を監視する必要がある.
        resList       = Http3.Update(out Http3Sharp.Status status, out ulong progress, out ulong totalWriteSize);
        Http3Status   = status;
        Http3Progress = progress;
        if (0 == TotalDownloadSize)
        {
            // このフレームにダウンロードした値 / 今までにダウンロードした値
            Progress.text = $"{Http3Progress}/{totalWriteSize}";
        }
        else
        {
            if (0 < totalWriteSize)
            {
                // 今までにダウンロードした値 / ダウンロード予定の値の合計値
                Progress.text = $"{totalWriteSize}/{TotalDownloadSize}";
            }
        }

        // ステータスの確認
        Status.text = status.ToString();

        // 通信完了状態か
        if ((Http3Sharp.Status.Wait == status) && (Http3Sharp.Status.Wait != _preStatus))
        {
            _isRetry = false;
        }

        // エラー状態か
        if (Http3Sharp.Status.Wait > status)
        {
            var sb = new StringBuilder();
            sb.AppendLine("ERROR!!");
            sb.AppendLine($"{Http3.GetErrorDetail()}");
            ErrorDetail.text = sb.ToString();
            // エラー状態になったら Retry か Abort してあげる必要がある
        }
        else
        {
            ErrorDetail.text = string.Empty;
        }

        // スタート可能か → OK 且つリトライ、アボート中でないなら可能 ( Http3Sharp の仕様的にはいつでも詰めるがサンプルの仕様)
        StartButton.interactable = (Http3Sharp.Status.Wait == status);

        // リトライ可能か → エラー状態且つリトライ完了してないなら可能
        RetryButton.interactable = ((Http3Sharp.Status.Wait > status) && !_isRetry);

        // アボート可能か → アボート中以外なら可能
        AbortButton.interactable = (Http3Sharp.Status.Aborting != status);

        _preStatus = status;

        return(resList);
    }