Exemple #1
0
    private void OnSendRequest()
    {
        //前回のリクエストをが処理中の場合エラー
        if (status == RequestStatus.Sending)
        {
            Debug.LogWarning("you cannnot sending request many times.Please wait previous request end");
            return;
        }

        //リクエスト設定し、飛ばす。
        request          = UnityWebRequest.Get(REQUEST_URL);
        webRequestStatus = request.Send();
        status           = RequestStatus.Sending;

        //リクエストの結果を受け取る。
        requestEvent = this.ObserveEveryValueChanged(x => x.webRequestStatus.isDone)
                       .Where(isDone => isDone == true)
                       .Subscribe(isDone =>
        {
            if (request.isNetworkError)
            {
                //Debug.Log(request.url);
                Debug.LogError(request.error);
                status = RequestStatus.Failure;
            }
            else
            {
                if (request.responseCode == 200)
                {
                    string rawJson           = request.downloadHandler.text;
                    RequestAnswerData answer = JsonUtility.FromJson <RequestAnswerData>(rawJson);
                    SetUserID(answer.userid);


                    status = RequestStatus.Success;
                }
                else
                {
                    Debug.LogError("MakeUserIDRequest:API doesn't return responseCode 200");
                    status = RequestStatus.Failure;
                }
            }

            if (requestEvent != null)
            {
                requestEvent.Dispose();
            }
        });
    }
Exemple #2
0
    private void OnSendRequest(string address)
    {
        var REQUEST_URL = GOOGLE_API_URL + address;

        //前回のリクエストをが処理中の場合エラー
        if (status == RequestStatus.Sending)
        {
            Debug.LogWarning("you cannnot sending request many times.Please wait previous request end");
            return;
        }

        //リクエスト設定し、飛ばす。
        request          = UnityWebRequest.Get(REQUEST_URL);
        webRequestStatus = request.Send();
        status           = RequestStatus.Sending;

        //リクエストの結果を受け取る。
        requestEvent = this.ObserveEveryValueChanged(x => x.webRequestStatus.isDone)
                       .Where(isDone => isDone == true)
                       .Subscribe(isDone =>
        {
            if (request.isNetworkError)
            {
                Debug.LogError(request.error);
                status = RequestStatus.Failure;
            }
            else
            {
                if (request.responseCode == 200)
                {
                    string rawJson           = request.downloadHandler.text;
                    RequestAnswerData answer = JsonUtility.FromJson <RequestAnswerData>(rawJson);
                    Debug.Log(answer.results[0].geometry.location.lat);
                    SetAddressPosition(answer.results[0].geometry.location.lat, answer.results[0].geometry.location.lng);
                    status = RequestStatus.Success;
                }
                else
                {
                    Debug.LogError("AddressToGeometryRequest:API doesn't return responseCode 200");
                    status = RequestStatus.Failure;
                }
            }
            if (requestEvent != null)
            {
                requestEvent.Dispose();
            }
        });
    }